1、定义和用法
Calendar 控件用于在浏览器中显示日历。
该控件可显示某个月的日历,允许用户选择日期,也可以跳到前一个或下一个月。
2、属性
属性 | 描述 | .NET |
日历的标题。 | 2.0 | |
日历标题文本的对齐方式。 | 2.0 | |
单元格边框与内容之间的空白,以像素计。 | 1.0 | |
单元格之间的空白,以像素计。 | 1.0 | |
显示一周中某天的名称的样式。 | 1.0 | |
显示周中各天的名称格式。 | 1.0 | |
显示日期的样式。 | 1.0 | |
哪天是周的第一天。 | 1.0 | |
显示下一月链接的文本。 | 1.0 | |
下一月和上一月链接的格式。 | 1.0 | |
显示下一月和上一月链接的样式。 | 1.0 | |
显示不在当前月中的日期的样式。 | 1.0 | |
显示上一月链接的文本。 | 1.0 | |
runat | 规定该控件是服务器控件。必须设置为 "server"。 | 1.0 |
选定的日期。 | 1.0 | |
选定的日期。 | 1.0 | |
选定日期的样式。 | 1.0 | |
允许用户如何选择日期。 | 1.0 | |
显示为月份选择链接的文本。 | 1.0 | |
月份和周的选择链接的样式。 | 1.0 | |
显示为周的选择链接的文本。 | 1.0 | |
布尔值,该值指示是否显示一周中各天的标头。 | 1.0 | |
布尔值,规定是否显示日期之间的网格线。 | 1.0 | |
布尔值,规定是否显示下一月和上一月链接。 | 1.0 | |
布尔值,规定是否现实日期的标题。 | 1.0 | |
日期标题的格式。 | 1.0 | |
日期标题的样式。 | 1.0 | |
当天的日期的样式。 | 1.0 | |
获取或设置今天的日期的值。 | 1.0 | |
UseAccessibleHeader | 规定是否使用 <th> 来代替 <td> 元素用于日的头部。 | 2.0 |
获取或设置指定要在 Calendar 控件上显示的月份的日期。 | 1.0 | |
周末的样式。 | 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.youkuaiyun.com/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等等。