Calendar 控件用于在浏览器中显示日历。
该控件可显示某个月的日历,允许用户选择日期,也可以跳到前一个或下一个月。
属性 | 描述 | .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 | 当用户导航到不同的月时,所执行的函数的名称。 |
AccessKey, Attributes, BackColor, BorderColor, BorderStyle, BorderWidth,
CssClass, Enabled, Font, EnableTheming, ForeColor, Height, IsEnabled,
SkinID, Style, TabIndex, ToolTip, Width
AppRelativeTemplateSourceDirectory, BindingContainer, ClientID, Controls,
EnableTheming, EnableViewState, ID, NamingContainer, Page, Parent, Site,
TemplateControl, TemplateSourceDirectory, UniqueID, Visible
1、使用默认属性的代码
<asp:Calendar ID="Calendar2" runat="server" ></asp:Calendar>
2、可以通过只能提示选择不同的样式,自动套用格式。
3、更多样式,可以通过属性进行修改使用。
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;//高亮显示的日期,背景色为红色。
}
}
}
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等等。