比较两个自定义控件的验证

时间:2011-10-25 11:04:42

标签: asp.net validation c#-3.0

我有场景,页面包含签入日期和签出输入日期。我对datepicker使用了用户控件,因此两个日期都被称为相同的用户控件。 像,

入住日期:<uc:datepicker ID="CheckInDate" runat="server" />  退房日期:<uc:datepicker ID="CheckOutDate" runat="server" />

现在我对这两个日期进行验证,这些日期不应该是空白的。

public class CustomiseDatePickerValidator : BaseValidator
 {

   protected override bool EvaluateIsValid()
        {
            Control c = this.FindControl(this.ControlToValidate);
            DatePicker datepickerSelected = c as DatePicker;
            ICustomiseRadDatePicker additionUserControl =    (ICustomiseRadDatePicker)c.Parent;

            if (string.IsNullOrEmpty(datepickerSelected.DateInput.Text))
             {
                return false;
             }

            return true;
        }
 }

这个工作正常,但我想比较两个datepicker值所以入住日期应该小于退房日期

3 个答案:

答案 0 :(得分:0)

我可能错了,但我认为你需要使用CompareValidator。如果我错过了什么,请纠正我

答案 1 :(得分:0)

使用CustomValidator可能会更容易。使用CustomValidator,您可以指定自己的客户端验证逻辑。

有关详细信息,请参阅此问题:
ASP.NET Custom Validator Client side & Server Side validation not firing

答案 2 :(得分:0)

CustomValidator的更好解决方案是将ValidationPropertyAttribute应用于用户控件类。这样,您就可以像使用任何其他控件一样对用户控件使用普通的ASP.NET验证器。