0

CreateUserWizard 内に Captcha コントロールを統合しています。

この Web サイトからキャプチャ コントロールのサンプル コードを入手しました。

if..else.. ステートメントを使用して、Captcha に基づいてユーザーの入力を検証したかったためです。ただし、createuserwizard から Captcha コントロールを取得しようとしたときにエラーが発生しました。

ここにエラーがあります:

The name 'Captcha1' does not exist in the current context

このコントロールをテキストボックス、画像、コントロールとして取得しようとしましたが、成功しませんでした。

コードは次のとおりです。

 <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">
              <ContentTemplate>

 <tr>
                            <td class="style4">Answer:</td>
                            <td>
                                <cc1:CaptchaControl ID="Captcha1" runat="server"
                                 CaptchaBackgroundNoise="Medium" CaptchaLength="5"
                                 CaptchaHeight="55" CaptchaWidth="200"
                                 CaptchaLineNoise="None" CaptchaMinTimeout="5"
                                 CaptchaMaxTimeout="240" FontColor = "#FF33CC" CaptchaFontWarping="Medium" />

                                 <asp:TextBox runat="server" ID="txtCaptcha" />

                            </td>
                        </tr>
 </ContentTemplate>

              </asp:CreateUserWizardStep>

背後のコード:

protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
    {
        //Control Captcha1 = (Control)CreateUserWizardStep1.ContentTemplateContainer.FindControl("Captcha1");
        TextBox txtCaptcha = (TextBox)CreateUserWizardStep1.ContentTemplateContainer.FindControl("txtCaptcha");

            Captcha1.ValidateCaptcha(txtCaptcha.Text.Trim());//error occurred here

        if (Captcha1.UserValidated)//error occurred here
        {

     }

} 
4

1 に答える 1

1

これを試して、CreateUserWizard 内のコントロールを見つけてください

TextBox txtCaptcha = (TextBox)CreateUserWizardStep1.CreateUserStep.ContentTemplateContainer.FindControl("txtCaptcha");

于 2012-07-29T18:38:19.827 に答える