这篇文章是在一个英文网站发现的,完全使用ASP.NET实现了日期选择的基本功能,没有使用js,原文链接
http://geekswithblogs.net/plundberg/archive/2009/03/24/asp.net-3.5ajaxnet-enabled-datepicker-snippet-using-the-aspcalendar-control.aspx
英语不好,简单翻译了一下。
ASP.NET 3.5/AJAX.NET --使用asp:Calendar控件实现日期选择功能
您还在寻找一个使用AJAX.NET简单的日期选择控件实现您的日期选择功能吗?我也一直苦苦寻觅,但是最终还是自己写了一个(参照了其它人的代码)。
实现此功能代码完全使用ASP.NET,没有使用javasrcipt,下面是主要代码,如果您需要在多处使用的话可以把它做成一个用户控件。
在.asp文件中,代码如下:(我使用了自己的日历图标,您可以在这里修改为您自己的)。
- <asp:UpdatePanel ID="UpdatePanel1" runat="server">
- <ContentTemplate>
- <asp:TextBox ID="requestedDeliveryDateTextBox" runat="server" Width="100" />
- <asp:ImageButton id="imageButton" runat="server" ImageUrl="~/Images/IconCalendar.png" AlternateText="calendar" OnClick="ImageButton_Click" CausesValidation="false" />
- <br />
- <div id="calendar" class="calendar" visible="false" runat="server">
- <asp:Calendar ID="requestedDeliveryDateCalendar" runat="server" OnSelectionChanged="RequestedDeliveryDateCalendar_SelectionChanged" />
- </div>
- </ContentTemplate>
- </asp:UpdatePanel>
后台主要代码如下:
- /// <summary>
- /// 日期选择图标被点击
- /// </summary>
- protected void ImageButton_Click(object sender, EventArgs eventArgs)
- {
- 控制日历的显示与隐藏
- calendar.Visible = !calendar.Visible;
- }
- /// <summary>
- /// 选择日期,通过AJAX触发
- /// </summary>
- protected void RequestedDeliveryDateCalendar_SelectionChanged(object sender, EventArgs eventArgs)
- {
- requestedDeliveryDateTextBox.Text = requestedDeliveryDateCalendar.SelectedDate.ToShortDateString();
- // 隐藏日历
- calendar.Visible = false;
- //设置日历下textbox的焦点,方便用户输入。移除或改变下行代码设置为您自己的控件
- someTextBox.Focus();
- }
效果如下: