1

キーワード「OnServerValidate」を使用してCustomValidatorを利用しようとしています

.aspxファイルで設定した場所は次のとおりです。

<div class="label">
    <div><label for="parentemail1">Email Address</label></div>
    <div><asp:TextBox ID="parentemail1" runat="server" MaxLength="40" Columns="40"></asp:TextBox></div>                      
        <asp:CustomValidator id="ParentEmail1Required"
        ControlToValidate="parentemail1"
        Display="Dynamic"
        ErrorMessage="Required"
        ValidateEmptyText="true"
        OnServerValidate="ServerValidator"
        runat="server"/>                          
</div>

OnServerValidateのC#コードビハインドメソッドは次のとおりです。

protected void ServerValidator(object source, ServerValidateEventArgs args)
{
    args.IsValid = false;
}

フォームが送信されたときにCustomValidatorを起動するべきではありませんか?
私はたくさんの投稿を読み、同じコントロールのRequiredFieldValidatorでこれを試しましたが、運がありませんでした。私はこれをClientValidationFunctionで動作させていますが、DOMではなくコードビハインドのプロパティにアクセスしたいと思います。

どんな助けでも大歓迎です。

4

2 に答える 2

4

これを試して

protected void ServerValidator(object source, ServerValidateEventArgs args)
{
    if(args.IsValid == false)
       return;
    Response.Redirect("NextPage.aspx");// It will not fire if page is not valid.
}
于 2012-10-17T17:03:53.400 に答える
0

引数 args はサーバーに送信されないため、サーバー メッセージが表示されません。これを行うには、ボタンを追加します。

コードを次のように変更します

<div>
        <div class="label">
    <div><label for="parentemail1">Email Address</label></div>
    <div><asp:TextBox ID="parentemail1" runat="server" MaxLength="40" Columns="40"></asp:TextBox>
        <br />
        <asp:Button ID="btnSendData" runat="server" Text="Send Data" />
            </div>                      
        <asp:CustomValidator id="ParentEmail1Required"
        ControlToValidate="parentemail1"
        Display="Dynamic"
        ErrorMessage="Required"
        ValidateEmptyText="true"
        OnServerValidate="ServerValidator"
        runat="server" SetFocusOnError="True"/>                          
</div>
    </div>
于 2014-08-23T22:12:16.923 に答える