CompareValidator无法正常工作

时间:2009-09-25 08:47:32

标签: c# asp.net validation

我更喜欢使用asp.net验证控件,因为我目前在同一个View中有其他验证控件。我需要在验证摘要中显示错误消息。

我有两个文本框,我需要确保textboxA是LessThan textboxB。

我使用了CompareValidator并将属性设置为:

  • ControlToCompare:textboxB
  • ControlToValidate:textboxA
  • 接线员:GreaterThan /也尝试过LessThan
  • 类型:日期

问题在于:

  • 当我在textboxA中提供时间时 并转到textboxB验证 显示错误。我以为我是 声明会解决这个问题但是它 没有。

在“更新”按钮的Click事件中,我添加了以下代码,因为我只需要它来验证textboxA / textboxB!= null。

        if(String.IsNullOrEmpty(textboxB.Text))
        {
            Debug.Write("Valid");
            timeCompareValidator.IsValid = true;    
        }

提前感谢您的帮助。

克莱尔

5 个答案:

答案 0 :(得分:1)

我认为您需要使用CustomValidator,这仍然允许您使用ValidationSummary。

见这里:

How can I use CompareValidator for times without dates?

答案 1 :(得分:0)

如果我理解正确,您需要比较两个日期。

I found this code on msdn

DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0);
int result = DateTime.Compare(date1, date2);
string relationship;

if (result < 0)
   relationship = "is earlier than";
else if (result == 0)
   relationship = "is the same time as";         
else
   relationship = "is later than";

Console.WriteLine("{0} {1} {2}", date1, relationship, date2);
// The example displays the following output:
//    8/1/2009 12:00:00 AM is earlier than 8/1/2009 12:00:00 PM

答案 2 :(得分:0)

您是否想尝试将if语句更改为:

if (!string.IsNullOrEmpty(textboxA.Text) && !string.IsNullOrEmpty(textboxB.text))

答案 3 :(得分:0)

如果要比较服务器端的两个日期或时间,请使用此解决方案

DateTime dt1 = Convert.ToDateTime(TextBoxA.Text);
DateTime dt2 = Convert.ToDateTime(TextBoxB.Text);

int result = dt1.CompareTo(dt2)

答案 4 :(得分:0)

我会使用CustomValidator(http://msdn.microsoft.com/en-us/library/9eee01cx(VS.71).aspx)。 顺便说一句:你为​​什么直接打电话给验证员?

timeCompareValidator.Validate();

通常在Page.Validate()期间评估验证器,每个Button触发(如果CausesValidation未设置为false)