ajaxToolkit:CalendarExtender应用

AjaxToolkit:CalendarExtender 控件,可以让用户选择日期。

由于不能对它做过多的定制,但我们可以使用另外的方法实现相同的功能。如设定用户输入的日期格式,判断用户输入的值是否为日期,使用asp:CompareValidator限制用户输入的日期等于、小于,小于等于、大于或大于等于某一个锚点日期。

View Code
 日期:<asp:TextBox ID="txtDespatchDate" runat="server" CssClass="textbox" Width="80px"></asp:TextBox>
                       <!--日历小图标-->
                        <img id="img1" src='<%= ResolveUrl("~/Calendar.gif")%>' border="0" />
                        <!--Ajax Calendar 控件,可以设定日期格式-->
                        <ajaxToolkit:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="txtDespatchDate"
                            PopupButtonID
="img1" Format="yyyy-MM-dd">
                        </ajaxToolkit:CalendarExtender>
                        <!--判断日期栏位必须填定-->
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator8" runat="server" ControlToValidate="txtDespatchDate"
                            Display
="none" ErrorMessage="日期栏位,必须填写!" ValidationGroup="vg1"></asp:RequiredFieldValidator>
                        <!--判断用户输入的值是否为日期-->                        
                        <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="txtDespatchDate"
                            Operator
="DataTypeCheck" Type="date" Display="None" ErrorMessage="日期栏位,非有效日期!"
                            ValidationGroup
="vg1"></asp:CompareValidator>
                        <!--比较用户输入的日期,是否小于等于当天-->
                        <asp:CompareValidator ID="CompareValidatorDespatchDate" runat="server" ControlToValidate="txtDespatchDate"
                            Display
="None" ErrorMessage="日期栏位,只能填写过去或是今天的日期!" Operator="LessThanEqual"></asp:CompareValidator>

 

比较日期,还需要在Page的Page_load事件中写:

cs:

View Code
 protected void Page_Load(object sender, EventArgs e)
    {       
        if (!IsPostBack)
        {
            //以下有一个对象,可参考:http://www.cnblogs.com/insus/articles/1735126.html
            CompareValidatorDespatchDate.ValueToCompare = objInsusDateTimeUtility.GetDateTime(DateTime.Today, "yyyy-MM-dd");
        }       
    }

 

vb.net:

View Code
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        If Not IsPostBack Then
            Data_Binding()
            '以下有一个对象,可参考:http://www.cnblogs.com/insus/articles/1735126.html
            CompareValidatorDespatchDate.ValueToCompare = objInsusDateTimeUtility.GetDateTime(DateTime.Today, "yyyy-MM-dd")
        End If
    End Sub

 

See also:

http://www.cnblogs.com/insus/archive/2011/08/27/2155687.html

 

posted @ 2012-03-24 09:46  Insus.NET  阅读(1451)  评论(0编辑  收藏  举报