Asp.net 比较两个自定义控件的验证
我有一个场景,页面包含输入的签入日期和签出日期。我对datepicker使用了用户控件,所以两个日期都称为同一个用户控件。 像 入住日期:Asp.net 比较两个自定义控件的验证,asp.net,validation,c#-3.0,Asp.net,Validation,C# 3.0,我有一个场景,页面包含输入的签入日期和签出日期。我对datepicker使用了用户控件,所以两个日期都称为同一个用户控件。 像 入住日期: 退房日期: 现在我对这两个日期都进行了验证,它们不应该像这样为空 public class CustomiseDatePickerValidator : BaseValidator { protected override bool EvaluateIsValid() { Control c = this.F
退房日期:
现在我对这两个日期都进行了验证,它们不应该像这样为空
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;
}
}
这工作正常,但我还想比较两个日期选择器的值,以便签入日期应小于签出日期。我可能错了,但我认为您需要使用CompareValidator进行此操作。如果我遗漏了一些内容,请更正。使用
CustomValidator
可能更容易做到这一点。使用CustomValidator
,您可以指定自己的客户端验证逻辑
有关更多详细信息,请参见此问题:CustomValidator的更好解决方案是将ValidationPropertyAttribute应用于用户控件类。这样,您就可以像使用任何其他控件一样,对用户控件使用普通ASP.NET验证程序 我知道,但我必须验证用户控件内的两个日期选择器。好的,我明白了,实际上,您可以使用黑客对用户控件使用验证控件,我的意思是验证控件不在用户控件内,只需尝试设置ControlToValidate=“uc1:TextBox1”,其中TextBox1是要验证的服务器控件的名称,它位于UserControl中。我已经在UserControl中的文本框上成功地为RequiredValidator实现了这一点。希望这有帮助。