2010-10-06 3 views
0

нужно хранить дополнительные USERINFO в CUW шагиFindControl ОШИБКА

//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> 

// Это часть кода за WizardStep UserSettings = NewUserWizard.FindControl (» UserSettings ") как WizardStep;

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

спасибо за помощь

ответ

2

Существует хороший шанс, что вы уже нашли ответ на этот вопрос или переместились, но я нашел этот вопрос в моем собственном поиске и думал, что я бы обеспечить ответьте на всех, кто может искать.

Проблема с образцом выше (помимо кода, который отсутствует в верхней части страницы, который скажет мне, что означает идентификатор вашего шага), что вам нужно искать элементы управления на каждом из шагов мастера отдельно. Итак, если вы искали гиперссылка на первом этапе своего мастера, то это было бы найти его:

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

Если вы не хотите, чтобы предположить, что этот шаг с HomeTown текстового полем всегда будет первым шаг в коллекции, это будет работать:

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

в моем случае, контроль я искал был в TemplatedWizardStep, так что я должен был использовать следующий код:

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

Примечание: Я использовал класс Wizard, потому что класс CreateUserWizard основан на Мастере, я полагаю, что приведенный выше код будет работать для обоих.