日历自定义验证器

时间:2012-02-23 14:42:24

标签: asp.net calendar

有人可以建议如何为Web窗体日历控件实现自定义验证器吗?显然,RequiredValidator和CustomValidator都不能与Calendar控件一起使用。

Microsoft提供的一个解决方案是扩展日历:

How to extend a Web form control to work with the validation controls by using Visual C#

有没有更简单的解决方案?

2 个答案:

答案 0 :(得分:3)

我终于以这种方式工作了:

<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;
    }
}

答案 1 :(得分:1)

我认为你应该使用Ajax Control Toolkit(下载来自: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" />