在ascx中使用asp:login,asp:forgotpassword和asp:createuserwizard控件时。 (例如registration.ascx)它找不到例如UserName,即使它存在于LayoutTemplate中。知道如何解决这个问题吗?
答案 0 :(得分:3)
如果在设计模式下打开智能标记进行控制,您将看到有些步骤可以转换为模板进行自定义。
CreateUserWizard http://img197.imageshack.us/img197/3823/7d4df5a594a1abdb8fdc8f1.png
对于CreateUserWizard,按自定义创建用户步骤,您将观察到,控制转换为表模板,您可以看到控件如何命名,即UserName,Password ...
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server">
<WizardSteps>
<asp:CreateUserWizardStep runat="server" ID="CreateUserWizardStep1">
<ContentTemplate>
<table border="0">
<tr>
<td align="center" colspan="2">
Sign Up for Your New Account</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">User Name:</asp:Label>
</td>
<td>
<asp:TextBox ID="UserName" runat="server"></asp:TextBox>
.......
另请注意,如果您希望从内部模板中找到控件,则必须使用FindControl
方法查找模板以获得所需的控件。
要在上面的代码中查找UserName控件,请使用
CreateUserWizardStep1.TemplateControl.FindControl("UserName") as TextBox
希望这有助于解决您的问题