有人可以建议如何为Web窗体日历控件实现自定义验证器吗?显然,RequiredValidator和CustomValidator都不能使用Calendar控件。微软提供日历自定义验证器
一种解决方案是扩展Calendar:
How to extend a Web form control to work with the validation controls by using Visual C#
是不是有一个简单的解决方案?
有人可以建议如何为Web窗体日历控件实现自定义验证器吗?显然,RequiredValidator和CustomValidator都不能使用Calendar控件。微软提供日历自定义验证器
一种解决方案是扩展Calendar:
How to extend a Web form control to work with the validation controls by using Visual C#
是不是有一个简单的解决方案?
我终于得到它的工作是这样的:
<asp:Calendar ID="startCalendar" CssClass="startDate"
OnSelectionChanged="Selection_Changed" runat="server"></asp:Calendar>
<asp:CustomValidator ID="dateCustVal" OnServerValidate="DateCustVal_Validate"
runat="server"></asp:CustomValidator>
protected void DateCustVal_Validate(object source, ServerValidateEventArgs args)
{
if (startCalendar.SelectedDate == null
|| startCalendar.SelectedDate == new DateTime(0001, 1, 1, 0, 0, 0))
{
args.IsValid = false;
}
else
{
args.IsValid = true;
}
}
我认为你应该使用Ajax控件工具包(downloadale:http://www.asp.net/ajaxlibrary/AjaxControlToolkitSampleSite/) 然后你可以根据需要设置你的日历的格式。一个例子是这样的:
<ajaxToolkit:Calendar runat="server"
TargetControlID="Date1"
CssClass="ClassName"
Format="MMMM d, yyyy"
PopupButtonID="Image1" />
如果你需要确保的日期已被选定,那么你就可以做到以下几点:
<ajaxToolkit:ValidatorCalloutExtender
runat="Server"
ID="PNReqE"
TargetControlID="Date1"
Width="350px"
HighlightCssClass="highlight"
CssClass="CustomValidatorCalloutStyle"
PopupPosition="Right"
WarningIconImageUrl="warning.gif"
CloseImageUrl="close.gif" />
不幸的是,这不是一个选项... – IrishChieftain 2012-02-23 14:51:33
'args.IsValid = startCalendar.SelectedDate!= default(DateTime);' – bdimag 2015-02-19 19:41:06