【问题标题】:Compare validation for two custom control比较两个自定义控件的验证
【发布时间】:2011-12-14 20:32:18
【问题描述】:

我有场景,页面包含输入的签入日期和签出日期。我为 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;
        }
 }

这工作正常,但我还想比较两个日期选择器值所以签入日期应该小于签出日期

【问题讨论】:

    标签: asp.net validation c#-3.0


    【解决方案1】:

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

    查看这个问题了解更多详情:
    ASP.NET Custom Validator Client side & Server Side validation not firing

    【讨论】:

      【解决方案2】:

      我可能错了,但我认为您需要为此使用 CompareValidator。如果我遗漏了什么,请纠正我

      【讨论】:

      • 我知道,但我必须验证用户控件内的两个日期选择器。
      • 好的,我明白了,实际上你可以使用 hack 来为 Usercontrols 使用验证控件,我的意思是验证控件不在 UserControl 中,只需尝试设置 ControlToValidate="uc1:TextBox1",其中TextBox1 是要在 UserControl 中验证的服务器控件的名称。我已经成功地为用户控件中的文本框上的RequiredValidator 工作。希望这会有所帮助。
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-24
        • 2011-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-07
        • 1970-01-01
        相关资源
        最近更新 更多