繁体   English   中英

自定义验证器不起作用

[英]custom validator not working

我在文本框上应用了自定义验证器,该文本框的值被日历更改。 我已经进行了服务器端验证,以检查是否是过去的日期。 单击提交按钮将触发验证器。 args.IsValid值设置为false,但是代码仍然输入提交按钮的click事件,而不显示错误消息。 请帮忙。

aspx.cs file
protected void CustomValidatorIssueDate_ServerValidate(object source, ServerValidateEventArgs args)
    {
        string nowString = DateTime.Now.ToString("MM/dd/yyyy");
        DateTime now = Convert.ToDateTime(nowString);
        DateTime issueDate = Convert.ToDateTime(args.Value);
        if (issueDate.CompareTo(now) > 0)
        {
            args.IsValid = true;
        }
        else
        {
            args.IsValid = false;
        }
    }

aspx file

<asp:TextBox ID="TextBoxIssueDate" runat="server" Width="214px"></asp:TextBox>
                    <asp:CustomValidator runat="server" ControlToValidate="TextBoxIssueDate" 
                        ErrorMessage="Issue Date cannot be past date" 
                        onservervalidate="CustomValidatorIssueDate_ServerValidate" 
                        ID="CustomValidatorIssueDate" Display="Dynamic" SetFocusOnError="True" ></asp:CustomValidator>

只需将IsValid设置为false就不会绕过您的onclick事件处理程序。

您需要在事件处理程序中检查IsValid。

if(Model.IsValid)
{
}

(或类似的内容)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM