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

日期:<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>
<!--日历小图标-->
<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:

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

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
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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 动态设置显示方式