我创建了一个简单的 CreateUserWizard 来注册我的用户。我添加了 2 个文本框:姓氏和名字。
现在,我想在用户注册时将它们添加到我的数据库中。这是我所做的:
<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");
唯一的问题是我使用调试器找到了容器名称“CreateUserStepContainer”......