Telerik DatePicker不支持WebForms CompareValidator的数据类型检查,因为当输入无效日期时,DatePicker会在输入框中显示错误样式,但会返回空值。因此,在带有可选日期字段的数据输入表单上,需要一些方法来处理无效日期,以便它们不会在回发时显示为空字段。
答案 0 :(得分:1)
通过使用CustomValidator,我们可以检查DatePicker在输入文本框中是否有值但返回空字符串 - 这表示日期格式无效。
function DateValidate(sender, args) {
var datepicker = document.getElementById(sender.controltovalidate).control;
var dateInput = datepicker.get_dateInput();
args.IsValid = !(dateInput.get_textBoxValue() != "" && dateInput.get_value() == "");
}
<telerik:RadDatePicker
ID="RetiredDatePicker" dbSelectedDate='<%# Bind("RetiredDate") %>' Runat="server">
</telerik:RadDatePicker>
<asp:CustomValidator
ID="RetiredDateValidator" runat="server" CssClass="Error"
ClientValidationFunction="DateValidate" ValidateEmptyText="true"
ControlToValidate="RetiredDatePicker" SetFocusOnError="True"
ErrorMessage="Retired date is not a valid date">*</asp:CustomValidator>