ASP.NET 日历


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

  • 一次显示一个月
  • 选择一天、一周或一个月
  • 选择日期范围
  • 逐月移动
  • 以编程方式控制日期的显示

日历控件的基本语法是:

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

日历控件的属性和事件


日历控件具有许多属性和事件,你可以使用它们自定义控件的操作和显示。下表提供了 Calendar 控件的一些重要属性:

特性 描述
Caption 获取或设置日历控件的标题。
标题对齐 获取或设置标题的对齐方式。
单元格填充 获取或设置数据和单元格边框之间的空格数。
单元格间距 获取或设置单元格之间的空间。
DayHeaderStyle 获取显示星期几的部分的样式属性。
日期名称格式 获取或设置星期几的格式。
DayStyle 获取显示月份中各天的样式属性。
第一天 获取或设置要在第一列中显示的星期几。
下个月文本 获取或设置下个月导航控件的文本。默认值为 >。
NextPrev格式 获取或设置下个月和上个月导航控件的格式。
其他月日风格 获取日历控件上不在显示月份中的日期的样式属性。
上一月正文 获取或设置上个月导航控件的文本。默认值为 <。
选定日期 获取或设置选定的日期。
选定日期 获取表示选定日期的 DateTime 对象的集合。
选定日风格 获取选定日期的样式属性。
选择模式 获取或设置选择模式,该模式指定用户是否可以选择一天、一周或一整个月。
选择月份文本 获取或设置选择器列中月份选择元素的文本。
选择器样式 获取周和月选择器列的样式属性。
选择周文本 获取或设置为选择器列中的周选择元素显示的文本。
ShowDayHeader 获取或设置一个值,该值指示是否显示星期几的标题。
显示网格线 获取或设置指示是否显示网格线的值。
ShowNextPrevMonth 获取或设置一个值,该值指示下个月和上个月的导航元素是否显示在标题部分中。
节目标题 获取或设置一个值,该值指示是否显示标题部分。
标题格式 获取或设置标题部分的格式。
标题风格 获取 Calendar 控件标题的样式属性。
TodayDayStyle 获取日历控件上今天日期的样式属性。
今天的日期 获取或设置今天日期的值。
使用AccessibleHeader
可见日期 获取或设置指定要显示的月份的日期。
周末日风格 获取 Calendar 控件上周末日期的样式属性。

Calendar 控件具有以下三个最重要的事件,允许开发人员对日历控件进行编程。他们是:

Events 描述
选择已更改 It is raised when a day, a week or an entire month is selected.
日渲染 它在呈现日历控件的每个数据单元格时引发。
可见月份已更改 当用户更改一个月时,它会被提高。

使用日历控件


放置一个没有任何代码的基本日历控件为网站提供了一个可行的日历,它显示了一年中的月份和日期。它还允许导航到下个月和上个月。

Calendar

日历控件允许用户选择一天、一周或一整个月。这是通过使用 SelectionMode 属性完成的。此属性具有以下值:

特性 描述
Day 选择一天。
DayWeek 选择一天或一整周。
日周月 选择一天、一周或一整个月。
None 什么都不能选择。

选择日期的语法:

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

When the selection mode is set to the value DayWeekMonth, an extra column with the > symbol appears for selecting the week, and a >> symbol appears to the left of the days name for selecting the month.

Calendar2

例子


以下示例演示了选择日期并在标签中显示日期:

内容文件代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="calendardemo._Default" %>

<!DOCTYPE html PUBLIC "-// W3C

<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