我创建了一个简单的CreateUserWizard来注册我的用户。我添加了2个TextBox:LastName和FirstName。
现在,我想在注册用户时将它们添加到我的数据库中。 这就是我所做的:
<asp:CreateUserWizard ID="RegisterUser" runat="server" EnableViewState="false" OnCreatedUser="RegisterUser_CreatedUser" RequireEmail="false">
<WizardSteps>
<asp:CreateUserWizardStep ID="RegisterUserWizardStep0" runat="server">
<ContentTemplate>
<asp:TextBox ID="LastName" runat="server" ></asp:TextBox>
[...]
<asp:Button ID="CreateUserButton" runat="server" CommandName="MoveNext" Text="S'inscrire"
ValidationGroup="RegisterUserValidationGroup"/>
在.cs文件中:
protected void RegisterUser_CreatedUser(object sender, EventArgs e)
{
TextBox test = RegisterUser.FindControl("LastName") as TextBox;
// Or using the generated ID
TextBox test2 = RegisterUser.FindControl("MainContent_RegisterUser_CreateUserStepContainer_LastName") as TextBox;
}
但无论我尝试什么,我的TextBox总是null
...
我错过了什么吗?我怎么能得到这些TextBox的值?
修改: 这个解决方案对我有用:
(TextBox)RegisterUser.WizardSteps[0].FindControl("CreateUserStepContainer").FindControl("LastName");
唯一的问题是我找到了容器名称&#34; CreateUserStepContainer&#34;通过使用调试器......
答案 0 :(得分:2)
这个解决方案对我有用:
(TextBox)RegisterUser.WizardSteps[0].FindControl("CreateUserStepContainer").FindControl("LastName");
答案 1 :(得分:1)
你必须从CreateUserWizard.CreateUserWizardStep.ContentTemplateContainer.control
找到控件
这样做:
TextBox test = (TextBox)RegisterUser.RegisterUserWizardStep0.ContentTemplateContainer.FindControl("LastName");