2011-10-15 44 views
0
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" CreateUserButtonText="Register"> 
    <WizardSteps> 
     <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server"> 
      <ContentTemplate> 
       <table class="style1"> 
        <!-- snip --> 
        <td> 
         <asp:TextBox ID="UserName" runat="server" /><br /> 

         <asp:RequiredFieldValidator ID="RequiredFieldValidator9" runat="server" 
          ControlToValidate="UserName" ErrorMessage="Username is required." 
          Font-Size="Small" Display="Dynamic" ToolTip="Username is required."> 
          Username is required. 
         </asp:RequiredFieldValidator> 
        </td> 
       </tr> 
       <!-- snip --> 
      </table> 
      <asp:Literal ID="ErrorMessage" runat="server" EnableViewState="False"></asp:Literal> 
     </ContentTemplate> 
     </asp:CreateUserWizardStep> 
     <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server"> 
     </asp:CompleteWizardStep> 
    </WizardSteps> 
</asp:CreateUserWizard> 

如何使用FindControl找到UserNameTextBox使用FindControl

我曾嘗試:

  • Dim createuserwizard = CType(sender, CreateUserWizard)
  • Dim userNameTextBox As TextBox = CType(createuserwizard.CreateUserStep.ContentTemplateContainer.FindControl("UserName"), TextBox)
  • Dim userNameTextBox As TextBox = CType(CreateUserWizardStep1.FindControl("UserName"), TextBox)

但是,這些工作對我來說的。

回答

1

的UserWizardStep的子控件是一個CreateUserStepContainer控制,所以你必須使用的FindControl從那裏。這將工作...

Dim userNameTextBox as TextBox = CType(CreateUserWizardStep1.Controls(0).FindControl("UserName"), TextBox)