0

我有一个比较验证器,它在两个<telerik:RadDatePicker>开始日期和结束日期进行验证。验证规则很简单,检查开始日期是否大于结束日期并向用户显示错误消息以进行更正

它按预期工作,但是当开始日期和结束日期相同时,它显示的消息不是预期的。下面的代码:

<asp:CompareValidator ID="dateCompareValidator" runat="server" ControlToValidate="endDate" ControlToCompare="startDate" Operator="GreaterThan" Type="Date" ErrorMessage="Start Date is greater than the End Date - please correct dates."Display="Dynamic"></asp:CompareValidator>

开始日期和结束日期的日期选择器如下:

<telerik:RadDatePicker CssClass="rcCalPopup" ID="endDate" runat="server" 
                                Skin="Vista">
                                <DateInput ID="DateInput2" runat="server" LabelCssClass="radLabelCss_Vista" Skin="Vista">
                                </DateInput>
                                <Calendar ShowRowHeaders="false" ID="Calendar2" runat="server" UseRowHeadersAsSelectors="False" UseColumnHeadersAsSelectors="False"
                                    ViewSelectorText="x" Skin="Vista">
                                </Calendar>
                                <DatePopupButton CssClass="rcCalPopup"></DatePopupButton>
                            </telerik:RadDatePicker>
4

1 回答 1

2

您使用验证器定义的规则是:

  • Enddate 必须大于 Startdate(注意缺少的等号)

验证器Operator属性确定有效输入的规则,而不是无效输入。

因此,如果您想允许相同的日期,您必须使用GreaterThanEqual

<asp:CompareValidator ID="dateCompareValidator" runat="server" 
    ControlToValidate="endDate" ControlToCompare="startDate" 
    Operator="GreaterThanEqual" Type="Date" 
    ErrorMessage="End date must be equal or greater than start date - please correct dates."Display="Dynamic">
</asp:CompareValidator>

请注意,我也ErrorMessage相应地更改了。如果输入控件为空,则不调用验证函数并且验证成功。使用RequiredFieldValidator控件要求用户在输入控件中输入数据。

于 2012-06-06T09:55:05.173 回答