.net Calendar控件使用说明

来源:互联网 发布:网络臭要饭的 编辑:程序博客网 时间:2024/05/22 10:50

1、定义和用法

Calendar 控件用于在浏览器中显示日历。

该控件可显示某个月的日历,允许用户选择日期,也可以跳到前一个或下一个月。

2、属性

属性

描述

.NET

Caption

日历的标题。

2.0

CaptionAlign

日历标题文本的对齐方式。

2.0

CellPadding

单元格边框与内容之间的空白,以像素计。

1.0

CellSpacing

单元格之间的空白,以像素计。

1.0

DayHeaderStyle

显示一周中某天的名称的样式。

1.0

DayNameFormat

显示周中各天的名称格式。

1.0

DayStyle

显示日期的样式。

1.0

FirstDayOfWeek

哪天是周的第一天。

1.0

NextMonthText

显示下一月链接的文本。

1.0

NextPrevFormat

下一月和上一月链接的格式。

1.0

NextPrevStyle

显示下一月和上一月链接的样式。

1.0

OtherMonthDayStyle

显示不在当前月中的日期的样式。

1.0

PrevMonthText

显示上一月链接的文本。

1.0

runat

规定该控件是服务器控件。必须设置为 "server"。

1.0

SelectedDate

选定的日期。

1.0

SelectedDates

选定的日期。

1.0

SelectedDayStyle

选定日期的样式。

1.0

SelectionMode

允许用户如何选择日期。

1.0

SelectMonthText

显示为月份选择链接的文本。

1.0

SelectorStyle

月份和周的选择链接的样式。

1.0

SelectWeekText

显示为周的选择链接的文本。

1.0

ShowDayHeader

布尔值,该值指示是否显示一周中各天的标头。

1.0

ShowGridLines

布尔值,规定是否显示日期之间的网格线。

1.0

ShowNextPrevMonth

布尔值,规定是否显示下一月和上一月链接。

1.0

ShowTitle

布尔值,规定是否现实日期的标题。

1.0

TitleFormat

日期标题的格式。

1.0

TitleStyle

日期标题的样式。

1.0

TodayDayStyle

当天的日期的样式。

1.0

TodaysDate

获取或设置今天的日期的值。

1.0

UseAccessibleHeader

规定是否使用 <th> 来代替 <td> 元素用于日的头部。

2.0

VisibleDate

获取或设置指定要在 Calendar 控件上显示的月份的日期。

1.0

WeekendDayStyle

周末的样式。

1.0

OnDayRender

当每一天的单元格被创建时,所执行的函数的名称。

OnSelectionChanged

当用户选择天、周或月时 ,所执行的函数的名称。

OnVisibleMonthChanged

当用户导航到不同的月时,所执行的函数的名称。

3、Web 控件标准属性

AccessKey, Attributes, BackColor, BorderColor, BorderStyle, BorderWidth,

CssClass, Enabled, Font, EnableTheming, ForeColor, Height, IsEnabled,

SkinID, Style, TabIndex, ToolTip, Width

4、控件标准属性

AppRelativeTemplateSourceDirectory, BindingContainer, ClientID, Controls, 
EnableTheming, EnableViewState, ID, NamingContainer, Page, Parent, Site, 
TemplateControl, TemplateSourceDirectory, UniqueID, Visible

5、示例

1、使用默认属性的代码

<asp:Calendar ID="Calendar2" runat="server" ></asp:Calendar>

2、可以通过只能提示选择不同的样式,自动套用格式。

3、更多样式,可以通过属性进行修改使用。

6、使用问题总结

1、使用Calendar控件的时候,只显示当前月的Day信息。

使用方法: OnDayRender控制天的显示。

源码:

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)

        {

            /**

             * 日历控件显示的天包括上月、本月、下月等信息。

             * 通过下面代码,可以控制控件只显示当前月份的Day信息。

             * 资料来源:http://topic.csdn.net/u/20100118/10/a3de1a1d-93a5-420a-b0d0-6d83b9a41bf7.html

             */

            if (e.Day.IsOtherMonth) {

                e.Cell.Controls.Clear();

            }

        }

2、使用Calendar控件实现日程表的样式。即:如果某天有安排,就高亮显示这一天。否则,正常显示。

依然使用OnDayRender方法

思路:把需要高亮显示的日期,保存到List<DateTime>中,然后通过OnDayRender方法,控制这些日期的显示样式。

源码:

private List<DateTime> lst = new List<DateTime>();//保存需要高亮显示的日期集合

        private int year = DateTime.Now.Year;

        private int month = DateTime.Now.Month;

        protected void Page_Load(object sender, EventArgs e)

        {

            lst.Clear();

            for (int i = 1; i < 30; i += 2) {

                lst.Add(new DateTime(year,month,i));

            }       

        }

 

        protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)

        {

            foreach (DateTime dt in lst) {

                if (e.Day.Date.Subtract(dt).Days == 0) {

                    e.Cell.BackColor = System.Drawing.Color.Red;//高亮显示的日期,背景色为红色。

                }

            }

        }

7、附录

1、Calendar更多帮助信息:http://www.w3school.com.cn/aspnet/control_calendar.asp

2、MSDN帮助信息: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.calendar(v=vs.80).aspx

3、现在也有很多用js写的时间控件,比如:Jqueryui的Datepicker等等。