Asp.net 简明教程

ASP.NET - Calendars

日历控件是一种功能丰富的 Web 控件,提供以下功能:

  1. 一次显示一个月

  2. 选择一天、一周或一个月

  3. 选择一天的范围

  4. 逐月移动

  5. 通过编程控制日期的显示

日历控件的基本语法:

<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

放置一个没有任何代码文件为基础的基本日历控件到一个站点上,可以给此站点提供一个可用的日历,显示该年的月份和天数。同时,它还允许导航到上一个和下一个月。

calendar

日历控件允许用户选择一个单日、一个星期或者整个月。这可以通过 SelectionMode 属性来实现。这个属性有以下值:

Properties

Description

Day

要选择一个单日。

DayWeek

要选择一个单日或一个整个星期。

DayWeekMonth

要选择一个单日、一个星期或整个一个月。

None

Nothing can be selected.

选择天数的语法:

<asp:Calender ID = "Calendar1" runat = "server" SelectionMode="DayWeekMonth">
</asp:Calender>

当选择模式被设置成 DayWeekMonth 值,将出现一个带有 > 符号的额外列,用于选择星期;另外,天数名称的左边会出现一个 >> 符号,用于选择月份。

calendar2

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();
}

运行该文件,它应该会产生如下输出:

calendar3