C# 如果自定义验证器为false,则停止执行

C# 如果自定义验证器为false,则停止执行,c#,asp.net,C#,Asp.net,我有两个文本框,分别是“截止日期”和“起始日期”。我比较了两个文本框和get value,但它的执行会转到我想停止的按钮的旁边,因为如果to_date小于from date,则to date将变为null,并且关注文本框不会转到按钮的click事件 我使用: try { DateTime from = DateTime.ParseExact(txt_from_date.Text, "M/d/yyyy", theCultureInfo);

我有两个文本框,分别是“截止日期”和“起始日期”。我比较了两个文本框和get value,但它的执行会转到我想停止的按钮的旁边,因为如果to_date小于from date,则to date将变为null,并且关注文本框不会转到按钮的click事件

我使用:

 try
        {
            DateTime from = DateTime.ParseExact(txt_from_date.Text, "M/d/yyyy", theCultureInfo);
            DateTime to = DateTime.ParseExact(txt_to_date.Text, "M/d/yyyy", theCultureInfo);
            int result = DateTime.Compare(to, from);
            e.IsValid = result>0;
            if (e.IsValid == false)
            {
                txt_to_date.Text = "";
                txt_to_date.Focus();
            }
        }
        catch (Exception eq)
        {
            e.IsValid = false;
            txt_to_date.Text = "";
        }

如果使用onclick事件处理程序,则必须调用验证:

protected void YourButton_OnClick(object sender, EventArgs e)
{
    Page.Validate();
    if(Page.IsValid) // Will be false if any validator is invalid
    {
         // your code here
    }
}

请注意,您可以在验证控件上设置
ValidationGroup
,并将相同的值传递给
Page.Validate
方法,如果必须将表单拆分为多个子部分。

为什么不在网页中处理此问题…可以使用jquery限制用户输入的起始日期大于起始日期。onclick事件处理程序的代码是什么?你把
Page.Validate()放进去了吗;如果(Page.IsValid){//您的代码}