2010-10-06 6 views
0

besoin de stocker userinfo supplémentaires en CUW étapesFindControl ERREUR

//register.aspx

  <p> 
     <b>HomeTown:</b><br /> <asp:TextBox ID = "HomeTown" runat ="server"></asp:TextBox> 
     </p> 
     <p> 
     <b>HomepageUrl:</b><br /> <asp:TextBox ID = "HomepageUrl" runat ="server"></asp:TextBox> 
     </p> 
     <p> 
     <b>Signature:</b><br /> <asp:TextBox ID = "Signature" runat ="server"></asp:TextBox> 
     </p> 
     </asp:WizardStep> 
     <asp:CompleteWizardStep runat="server" /> 
     </WizardSteps> 
    </asp:CreateUserWizard> 

// Cela fait partie du code derrière WizardStep UserSettings = NewUserWizard.FindControl (» UserSettings ") comme WizardStep;

 // Programmatically reference the TextBox controls 
    TextBox HomeTown = UserSettings.FindControl("HomeTown") as TextBox;...ERROR Object reference not set to an instance of an object. 

grâce à l'aide

Répondre

2

Il y a une bonne chance que vous avez déjà trouvé une réponse à cette question ou ont évolué, mais je trouve cette question dans ma recherche et j'ai pensé fournir une répondez à quelqu'un d'autre qui pourrait chercher.

Le problème avec l'exemple ci-dessus (outre le code manquant en haut qui me dirait l'ID de votre étape) est que vous devez rechercher des contrôles dans chacune des étapes de l'assistant individuellement. Donc, si vous recherchez un lien hypertexte dans la première étape de votre assistant alors ce serait trouver:

TextBox HomeTown = (TextBox)UserSettings.WizardSteps[0].FindControl("HomeTown"); 

Si vous ne voulez présumer que l'étape de la zone de texte HomeTown serait toujours le premier pas dans la collection, cela fonctionnerait:

WizardStep wizStep (WizardStep)wizSample.FindControl("SampleStepName"); 
TextBox HomeTown = (TextBox)wizStep.FindControl("HomeTown"); 

dans mon cas, le contrôle que je cherchais était dans un TemplatedWizardStep, donc je devais utiliser le code suivant:

TemplatedWizardStep wizStep = (TemplatedWizardStep)wizSample.FindControl("SampleStepName"); 
Panel pnlSample =(Panel)wizStep.ContentTemplateContainer.FindControl("pnlSample"); 
pnlSample .Visible = true; 

Remarque: J'utilisais la classe Wizard, car la classe CreateUserWizard est basée sur l'Assistant. Je suppose que le code ci-dessus fonctionnerait pour les deux.

Questions connexes