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 @   Insus.NET  阅读(1458)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
历史上的今天:
2011-03-24 显示Flash时控制其的宽度与高度
2009-03-24 provider: SQL 网络接口, error: 25 - 连接字符串无效
2009-03-24 动态设置显示方式
点击右上角即可分享
微信分享提示