4

ユーザーを登録するための簡単なCreateUserWizardを作成しました。LastNameとFirstNameの2つのTextBoxを追加しました。

ここで、ユーザー登録時にデータベースに追加したいと思います。これが私がしたことです:

<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」を見つけたことです...

4

2 に答える 2

2

この解決策は私のために働いた:

(TextBox)RegisterUser.WizardSteps[0].FindControl("CreateUserStepContainer").FindControl("LastName");
于 2012-12-13T15:23:33.517 に答える
1

次のようにコントロールを見つける必要がありますCreateUserWizard.CreateUserWizardStep.ContentTemplateContainer.control

 TextBox test = (TextBox)RegisterUser.RegisterUserWizardStep0.ContentTemplateContainer.FindControl("LastName");
于 2012-12-01T14:06:27.410 に答える