Дата Сравнить вопрос валидатора в asp.net

У меня есть валидатор сравнения, который проверяет на двух <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>

1 ответ

Решение

Правило, которое вы определили с помощью Валидатора:

  • Конечная дата должна быть больше, чем Начальная дата (обратите внимание на отсутствующие равные)

Валидатор 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 элемент управления, требующий от пользователя ввода данных в элемент управления вводом.

Другие вопросы по тегам