ASP.NET(c#) 日期选择控件的另一种实现方法

时间:2023-03-08 19:43:57
ASP.NET(c#) 日期选择控件的另一种实现方法

这篇文章是在一个英文网站发现的,完全使用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文件中,代码如下:(我使用了自己的日历图标,您可以在这里修改为您自己的)。

  1. <asp:UpdatePanel ID="UpdatePanel1" runat="server">
  2. <ContentTemplate>
  3. <asp:TextBox ID="requestedDeliveryDateTextBox" runat="server" Width="100" />
  4. <asp:ImageButton id="imageButton" runat="server" ImageUrl="~/Images/IconCalendar.png" AlternateText="calendar" OnClick="ImageButton_Click" CausesValidation="false" />
  5. <br />
  6. <div id="calendar" class="calendar" visible="false" runat="server">
  7. <asp:Calendar ID="requestedDeliveryDateCalendar" runat="server" OnSelectionChanged="RequestedDeliveryDateCalendar_SelectionChanged" />
  8. </div>
  9. </ContentTemplate>
  10. </asp:UpdatePanel>

后台主要代码如下:

  1. /// <summary>
  2. /// 日期选择图标被点击
  3. /// </summary>
  4. protected void ImageButton_Click(object sender, EventArgs eventArgs)
  5. {
  6. 控制日历的显示与隐藏
  7. calendar.Visible = !calendar.Visible;
  8. }
  9. /// <summary>
  10. /// 选择日期,通过AJAX触发
  11. /// </summary>
  12. protected void RequestedDeliveryDateCalendar_SelectionChanged(object sender, EventArgs eventArgs)
  13. {
  14. requestedDeliveryDateTextBox.Text = requestedDeliveryDateCalendar.SelectedDate.ToShortDateString();
  15. // 隐藏日历
  16. calendar.Visible = false;
  17. //设置日历下textbox的焦点,方便用户输入。移除或改变下行代码设置为您自己的控件
  18. someTextBox.Focus();
  19. }

效果如下:

ASP.NET(c#) 日期选择控件的另一种实现方法