Asp.net 简明教程
ASP.NET - Calendars
日历控件是一种功能丰富的 Web 控件,提供以下功能:
-
一次显示一个月
-
选择一天、一周或一个月
-
选择一天的范围
-
逐月移动
-
通过编程控制日期的显示
日历控件的基本语法:
<asp:Calender ID = "Calendar1" runat = "server">
</asp:Calender>
Properties and Events of the Calendar Control
日历控件具有很多属性和事件,您可以使用它们来定制控件的动作和显示。下表提供了日历控件的一些重要属性:
Properties |
Description |
Caption |
获取或设置日历控件的标题。 |
CaptionAlign |
获取或设置标题的对齐方式。 |
CellPadding |
获取或设置数据和单元格边框之间的空格数。 |
CellSpacing |
获取或设置单元格之间的空格。 |
DayHeaderStyle |
获取显示星期的那一节的样式属性。 |
DayNameFormat |
获取或设置星期几的格式。 |
DayStyle |
获取显示月中的日期的样式属性。 |
FirstDayOfWeek |
获取或设置要显示在第一列中的星期几。 |
NextMonthText |
获取或设置下一个月导航控件的文本。默认值为 >。 |
NextPrevFormat |
获取或设置上个月和下个月导航控件的格式。 |
OtherMonthDayStyle |
获取日历控件中不是显示月份的日期的样式属性。 |
PrevMonthText |
获取或设置上个月导航控件的文本。默认值为 <。 |
SelectedDate |
获取或设置选定的日期。 |
SelectedDates |
获取表示所选日期的日期时间对象集合。 |
SelectedDayStyle |
获取所选日期的样式属性。 |
SelectionMode |
获取或设置选择模式,该模式指定用户是能选择单个日期、一个星期还是整个月。 |
SelectMonthText |
获取或设置选择器栏中月份选择元素的文本。 |
SelectorStyle |
获取星期和月份选择器栏的样式属性。 |
SelectWeekText |
获取或设置选择器栏中星期选择元素显示的文本。 |
ShowDayHeader |
获取或设置指示是否显示星期日期标题的值。 |
ShowGridLines |
获取或设置指示是否显示网格线的值。 |
ShowNextPrevMonth |
获取或设置一个值,该值指示是否在标题部分显示下一个月和前一个月导航元素。 |
ShowTitle |
获取或设置一个值,该值指示是否显示标题部分。 |
TitleFormat |
获取或设置标题部分的格式。 |
Titlestyle |
获取日历控件的标题标题的样式属性。 |
TodayDayStyle |
获取日历控件中今天日期的样式属性。 |
TodaysDate |
获取或设置今天日期的值。 |
UseAccessibleHeader |
获取或设置一个值,该值指示是否为日期标题呈现表格头 <th> HTML 元素,而不是表格数据 <td> HTML 元素。 |
VisibleDate |
获取指定要显示的月份的日期。 |
WeekendDayStyle |
获取日历控件中周末日期的样式属性。 |
日历控件具有以下三个最重要的事件,允许开发人员对日历控件进行编程。它们是:
Events |
Description |
SelectionChanged |
当选择一天、一个星期或整个月时触发。 |
DayRender |
在日历控件中的每一个数据单元格里进行渲染时会触发这个事件。 |
VisibleMonthChanged |
此事件会在用户更改月份时触发。 |
Working with the Calendar Control
放置一个没有任何代码文件为基础的基本日历控件到一个站点上,可以给此站点提供一个可用的日历,显示该年的月份和天数。同时,它还允许导航到上一个和下一个月。
日历控件允许用户选择一个单日、一个星期或者整个月。这可以通过 SelectionMode
属性来实现。这个属性有以下值:
Properties |
Description |
Day |
要选择一个单日。 |
DayWeek |
要选择一个单日或一个整个星期。 |
DayWeekMonth |
要选择一个单日、一个星期或整个一个月。 |
None |
Nothing can be selected. |
选择天数的语法:
<asp:Calender ID = "Calendar1" runat = "server" SelectionMode="DayWeekMonth">
</asp:Calender>
当选择模式被设置成 DayWeekMonth
值,将出现一个带有 > 符号的额外列,用于选择星期;另外,天数名称的左边会出现一个 >> 符号,用于选择月份。
Example
以下示例展示了如何选择日期并在一个标签上显示该日期:
内容文件代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="calendardemo._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>
Untitled Page
</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h3> Your Birthday:</h3>
<asp:Calendar ID="Calendar1" runat="server SelectionMode="DayWeekMonth" onselectionchanged="Calendar1_SelectionChanged">
</asp:Calendar>
</div>
<p>Todays date is:
<asp:Label ID="lblday" runat="server"></asp:Label>
</p>
<p>Your Birday is:
<asp:Label ID="lblbday" runat="server"></asp:Label>
</p>
</form>
</body>
</html>
SelectionChanged
事件的事件处理程序:
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
lblday.Text = Calendar1.TodaysDate.ToShortDateString();
lblbday.Text = Calendar1.SelectedDate.ToShortDateString();
}
运行该文件,它应该会产生如下输出: