打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何:响应 Calendar Web 服务器控件中的日期选择

如果 Calendar 控件的 SelectionMode 属性设置为除 None 外的任何值,则用户可选择一个日或一个日期范围。您可检测并响应用户的选择。

响应日期选定

  • 使用下面的签名,为 Calendar 控件的 SelectionChanged 事件创建一个方法:

    Private Sub Calendar1_SelectionChanged(ByVal sender _    As System.Object, ByVal e As System.EventArgs) _    Handles Calendar1.SelectionChanged

    private void Calendar1_SelectionChanged (object sender,     System.EventArgs e)
    注意

    只有当控件中的用户操作更改日期选择时,才引发该事件。例如,如果用户两次单击同一个日期,则第二次单击不引发事件。如果以编程方式设置日期范围,则同样不引发该事件。

有关日期选定的信息可在下面这些属性中获得:

属性 说明

SelectedDate

单个日期。如果用户已选定单个日期,则该属性包含此日期。如果用户已选定多个日期,则该属性包含此日期范围中的第一个日期。

SelectedDates

包含所有选定日期的集合。该集合中的日期是有序和唯一的。因为 Calendar 控件不允许用户选择多个单独的日期,集合中的日期也是连续的。

确定选定的日期数

  • 获取 SelectedDates 集合的 Count 属性值,如下面的示例所示。

    Public Sub Calendar1_SelectionChanged(ByVal sender As Object, _   ByVal e As System.EventArgs) _   Handles Calendar1.SelectionChanged         Text1.Text = "You selected " _      & Calendar1.SelectedDates.Count.ToString() _      & " date(s)."End Sub

    private void Calendar1_SelectionChanged (object sender, System.EventArgs e){   Text1.Text = String.Format("You selected {0} date(s).",      Calendar1.SelectedDates.Count);}   

如果已确定用户选定了多个日期,则可获取日期范围。

获取多个日期选定的日期范围

  1. 使用 SelectedDates 属性的 Count 属性获取选择的日期的计数。

  2. 获取集合中的第一个日期,然后通过将计数的索引处的日期减一获取最后一个日期。下面的示例在页面上的文本框控件中显示第一个日期和最后一个日期。

    Public Sub Calendar1_SelectionChanged(ByVal sender As Object, _   ByVal e As System.EventArgs) _   Handles Calendar1.SelectionChanged         With Calendar1.SelectedDates      If .Count > 1 Then         Dim firstDate As Date = .Item(0).Date         Dim lastDate As Date = .Item(.Count - 1).Date         TextBox1.Text = firstDate.ToString()         TextBox2.Text = lastDate.ToString()      End If   End WithEnd Sub

    private void Calendar1_SelectionChanged (object sender,   System.EventArgs e){   SelectedDatesCollection theDates = Calendar1.SelectedDates;   if (theDates.Count > 1)    {      DateTime firstDate = theDates[0];      DateTime lastDate = theDates[theDates.Count-1];      TextBox1.Text = firstDate.ToString();      TextBox2.Text = lastDate.ToString();   }}

获取多个日期选定的时间跨度

  • 创建一个 TimeSpan 对象,并将其设置为 SelectedDates 集合中最后一个日期与第一个日期之间的差,然后获取 TimeSpan 对象的 Days 属性。

    Public Sub Calendar1_SelectionChanged(ByVal sender As Object, _   ByVal e As System.EventArgs) Handles Calendar1.SelectionChanged   With Calendar1.SelectedDates      Dim days As Integer      Dim firstDate As Date = .Item(0).Date      Dim lastDate As Date = .Item(.Count - 1).Date      ' The Subtract method returns a TimeSpan object.      days = lastDate.Subtract(firstDate).Days + 1      TextBox1.Text = "You have selected " & days.ToString() & " day(s)."   End WithEnd Sub

    private void Calendar1_SelectionChanged (object sender,   System.EventArgs e){   SelectedDatesCollection theDates = Calendar1.SelectedDates;   TimeSpan timeSpan = theDates[theDates.Count-1] - theDates[0];   TextBox1.Text =       String.Format("You have selected {0} day(s).", timeSpan.Days + 1);}   
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ASP.NET高级控件
VB.NET日期与时间数据处理及技巧
java 日期增加一天
世界各地的人都用什么样的日历 你想收哪个?|日历|Calendar
详解VB.net文件传输.(可传输任意文件)
ASP.NET AJAX入门
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服