自定义验证器无法正常工作

时间:2011-06-17 14:53:39

标签: c#

我在一个文本框上应用了一个自定义验证器,其值由日历控制。我已经给出了服务器端验证,以检查它是否是过去的日期。点击提交按钮即可触发验证器。 args.IsValid值设置为false,但代码仍然会进入提交按钮的单击事件,而不是显示错误消息。 请帮忙。

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>

1 个答案:

答案 0 :(得分:0)

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

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

if(Model.IsValid)
{
}

(或类似的东西)。