可使用 Calendar Web 服务器控件显示日历中的可选日期,并显示与特定日期关联的数据。 一、方案 可以使用 Calendar Web 服务器控件执行下面的操作: 1、显示和选择日期 该控件显示一个日历,用户通过此日历可移动到任意一年中的任意一天。设置 SelectedDate 属性,使某个特定的日期在控件中突出显示。用户还可通过单击一个日或在不同的月份之间移动以移动到任意日期。还可将日历配置为允许用户选择多个日期,包括整周或整月。 显示十月份的 Calendar 控件的表示方法
二、功能 可以使用 Calendar 控件执行下面的操作: ·捕获用户交互(例如在用户选择一个日期或一个日期范围时)。 ·自定义日历的外观。 ·在日历中显示数据库中的信息。
三、背景 Calendar 控件一次显示一个月份中的日期,同时共显示六周。该控件支持若干种日期类型,下表描述了这些日期类型。 日期类型 TodaysDate VisibleDate SelectedDate, SelectedDates
Calendar 控件基于 DateTime 对象,因此支持该对象所允许的全部日期范围。您可有效地显示公元 0 年到 9999 年之间的任意日期。 在 ASP.NET 页上,Calendar 控件以 HTML 表的形式呈现。因此,该控件的一些属性与表的各种格式设置有关。一些较早的浏览器不完全支持其中的几个属性。因此,并不是所有的格式设置功能在这些浏览器中都可用。 1、启用日期选定 默认情况下,日历允许用户单击个别日期以选定它。如果正在将控件用作只读日历,则可禁用日期选择功能。 如果启用了日期选择,则日历的每一天都包含一个 LinkButton 控件,当单击该控件时,会引发某个事件。如果启用了周选择或月份选择,则将一列链接添加到日历的一侧,以使用户能够指定要选择的周。 2、自定义日历的外观 可设置日历的属性以更改日历的颜色、尺寸、文本以及其他可视特性。有几种方法可实现此操作,如下表所示。 自定义方法 设置属性 设置扩展样式属性 自定义个别日的呈现
3、捕获用户与 Calendar Web 服务器控件之间的交互 当用户选择单个日期或日期范围时,Calendar 控件引发 SelectionChanged 事件。当用户显示一个新月份时,该控件引发 VisibleMonthChanged 事件。通过为这些事件创建方法,可确定用户选定了哪个日期或哪些日期并进行适当的响应。一种响应可能是自定义该日期的显示。 4、在 Calendar 控件中显示数据库信息 一个常用的方案是在日历中显示数据库信息。例如,一个事件日历通常基于在数据库中存储的信息。 Calendar 控件并不直接支持数据绑定,即您不是将日历作为一个整体绑定到数据源。相反,您为控件的 DayRender 事件创建一个方法,该事件在呈现当前日历月份中的每个日时引发。在该事件的处理程序中,您可从数据源中提取信息,并将这些信息添加到浏览器中呈现的流。 5、辅助功能 为使辅助设备的用户能更方便地访问 Calendar 控件,该控件支持名为 UseAccessibleHeader 的属性。当此属性设置为 true 时(默认设置),会使用 HTML th 元素呈现包含日名称的列标题。
四、如何:在 Calendar Web 服务器控件中控制月份定位 默认情况下,日历 (Calendar) 控件显示包含当前日期的月份。通过单击日历标题栏中的月导航链接,用户可以在 Calendar 控件的不同月份间移动。您可以控制这些链接是否可供用户单击。
您还可以编程方式定位,这在您想为用户提供另一种显示特定月份的方法时很有用。最后,您可响应在用户定位时引发的事件。 1、启用或禁用用户月份定位 将 Calendar 控件的 ShowNextPrevMonth 属性设置为 true 或 false。如果该属性设置为 false,则控件不在标题中显示允许用户在月份之间移动的 LinkButton 控件。 提示: 通过设置 NextMonthText、PrevMonthText、NextPrevFormat 和 NextPrevStyle 属性,可以更改月份定位超链接的外观。 2、以编程方式定位月份 将控件的 VisibleDate 属性设置为要显示的月份中的某个日期。该日期可以是此月份中的任意一天,但通常设置为此月份中的第一天。如果 VisibleDate 属性为空(如果设置为 DateTime.Empty),则当前可见月份从 TodaysDate 属性的值获取。 下例定位到 2000 年 2 月: Calendar1.VisibleDate = new DateTime(2000, 2, 1); 更改 VisibleDate 属性对 TodaysDate、SelectedDayStyle 或 SelectedDates 属性的值没有影响。 如果启用月份定位,则日历 (Calendar) 控件将在用户移动到另一个月份时引发一个事件。您可处理该事件以替换或修正默认的月份定位。例如,如果在一个旅行计划页上使用两个 Calendar 控件,则可以防止用户在设置起始日期月份之前设置结束日期月份。 3、响应月份定位事件 为控件的 VisibleMonthChanged 事件创建一个方法。当该事件引发时,控件已经将 VisibleMonth 属性值增加或减少了 1。 VisibleMonthChanged 事件采用一个 MonthChangedEventArgs 类型的参数。您可使用该参数的如下属性确定或重写用户的操作: 属性 PreviousDate NewDate
System.Web.UI.WebControls.MonthChangedEventArgs e) { // Select the 10th and 25th of each month. Calendar1.SelectedDates.Clear(); Calendar1.SelectedDates.Add(new DateTime(e.NewDate.Year, e.NewDate.Month, 10)); Calendar1.SelectedDates.Add(new DateTime(e.NewDate.Year, e.NewDate.Month, 25)); }
五、如何:控制 Calendar Web 服务器控件中的用户日期选定 您可指定用户可在 Calendar 控件中选定个别日、个别周或整个月份。您也可以完全禁用日选定。 1、控制用户日期选定 将 Calendar 控件的 SelectionMode 属性设置为在 SelectionMode 枚举中定义的一个值:Day、DayWeek 或 DayWeekMonth。若要禁用所有日期选定,请将该属性设置为 None。 说明: 用户只可选定单个日、单个周或整个月份。但是,在代码中您可选定任意一组日期。 当启用日期选定时,只要用户选定一天、一周或一个月,就会提交窗体并引发一个事件,您可为该事件创建一个方法。 为允许用户选定一个日期,日历将显示链接。个别日包含带有日期编号的链接。如果将日历设置为允许用户选定一周或整个月份,日历的左侧会额外添加一个带有选定链接的列。 说明: 您还可以控制个别日的日期选定。例如,您可指定用户可单击该月份的特定日,如假日。 您可为周和月份选定链接指定文本。 2、指定周和月份选定链接文本 将 SelectWeekText 和 SelectMonthText 属性设置为用于导航链接的文本。 还可以为包含周和月份选定链接的列设置字体、颜色和边框样式,以及为日设置样式。 资料引用:http://www.knowsky.com/540047.html (责任编辑:admin) |