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 回答