hao_2468

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
Calendar控件的常用事件
事件                        说明
DayRender     当日期被显示的时候被触发
SelectionChanged     当日期被用户选择(单击)的时候被触发
VisibleMonthChanged     当所显示的月份被更改(前一个/后一个链接)的时候被触发

在创建Calendar控件中的每个日期单元格时,均会引发DayRender事件。通过在DayRender事件的事件处理程序中提供代码,可以在创建日期单元格时控制其内容和格式设置。当选择月历中的日期时,则会激发SelectionChanged事件。Calendar控件中,最常使用的事件是 SelectionChanged,它允许用户在选择日期的时候运行相应代码。对当前月份的切换,将会激发VisibleMonthChanged事件。

DayRender 事件处理程序接受DayRenderEventArgs参数,改参数有Cell和Day2个属性,里面包含了自定义单元格中所需要的所有内容。 VisibleMonthChanged事件中则接受MonthChangedEventArgs参数,该参数的重要属性为NewDate和 PreviousDate,分别表示当前显示的月份和Calendar中以前显示的月份。

CalendarControl.aspx
1<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CalendarControl.aspx.cs" Inherits="CalendarControl" %>
2
3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
5<html xmlns="http://www.w3.org/1999/xhtml" >
6<head runat="server">
7    <title>Calendar控件应用示例</title>
8</head>
9<body>
10    <form id="form1" runat="server">
11    <div>
12        <div>
13            <asp:Calendar ID="myCalendar" runat="server" BackColor="White" BorderColor="#3366CC"
14                BorderWidth="1px" CellPadding="1" DayNameFormat="Shortest" Font-Names="Verdana"
15                Font-Size="8pt" ForeColor="#003399" Height="200px" OnDayRender="myCalendar_DayRender"
16                OnSelectionChanged="myCalendar_SelectionChanged" OnVisibleMonthChanged="myCalendar_VisibleMonthChanged"
17                Width="220px">
18                <SelectedDayStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
19                <TodayDayStyle BackColor="#99CCCC" ForeColor="White" />
20                <SelectorStyle BackColor="#99CCCC" ForeColor="#336666" />
21                <WeekendDayStyle BackColor="#CCCCFF" />
22                <OtherMonthDayStyle ForeColor="#999999" />
23                <NextPrevStyle Font-Size="8pt" ForeColor="#CCCCFF" />
24                <DayHeaderStyle BackColor="#99CCCC" ForeColor="#336666" Height="1px" />
25                <TitleStyle BackColor="#003399" BorderColor="#3366CC" BorderWidth="1px" Font-Bold="True"
26                    Font-Size="10pt" ForeColor="#CCCCFF" Height="25px" />
27            </asp:Calendar>
28            <br />
29            <br />
30            <asp:Label ID="lbText" runat="server"></asp:Label><br />
31            <br />
32            Calendar控件的常用事件<br />
33            <table border="1">
34                <tr>
35                    <td style="width: 148px; text-align: center">
36                        事件</td>
37                    <td style="width: 426px; text-align: center">
38                        说明</td>
39                </tr>
40                <tr>
41                    <td style="width: 148px">
42                        DayRender</td>
43                    <td style="width: 426px">
44                        当日期被显示的时候被触发</td>
45                </tr>
46                <tr>
47                    <td style="width: 148px">
48                        SelectionChanged</td>
49                    <td style="width: 426px">
50                        当日期被用户选择(单击)的时候被触发</td>
51                </tr>
52                <tr>
53                    <td style="width: 148px">
54                        VisibleMonthChanged</td>
55                    <td style="width: 426px">
56                        当所显示的月份被更改(前一个/后一个链接)的时候被触发</td>
57                </tr>
58            </table>
59        </div>
60        <br />
61        在创建Calendar控件中的每个日期单元格时,均会引发DayRender事件。通过在DayRender事件的事件处理程序中提供代码,可以在创建日期单元格时控制其内容和格式设置。当选择月历中的日期时,则会激发SelectionChanged事件。Calendar控件中,最常使用的事件是 SelectionChanged,它允许用户在选择日期的时候运行相应代码。对当前月份的切换,将会激发VisibleMonthChanged事件。<br />
62        <br />
63        DayRender 事件处理程序接受DayRenderEventArgs参数,改参数有Cell和Day2个属性,里面包含了自定义单元格中所需要的所有内容。 VisibleMonthChanged事件中则接受MonthChangedEventArgs参数,该参数的重要属性为NewDate和 PreviousDate,分别表示当前显示的月份和Calendar中以前显示的月份。
64   
65    </div>
66    </form>
67</body>
68</html>
69

CalendarControl.aspx.cs
1using System;
2using System.Data;
3using System.Configuration;
4using System.Collections;
5using System.Web;
6using System.Web.Security;
7using System.Web.UI;
8using System.Web.UI.WebControls;
9using System.Web.UI.WebControls.WebParts;
10using System.Web.UI.HtmlControls;
11using System.Drawing;
12
13public partial class CalendarControl : System.Web.UI.Page
14{
15    protected void Page_Load(object sender, EventArgs e)
16    {
17
18    }
19    protected void myCalendar_SelectionChanged(object sender, EventArgs e)
20    {
21        this.lbText.Text = "您选择的日期是:" + this.myCalendar.SelectedDate.Month.ToString() + "月"
22        + this.myCalendar.SelectedDate.Day.ToString() + "号";
23        this.lbText.ForeColor = Color.Blue;
24    }
25    protected void myCalendar_VisibleMonthChanged(object sender, MonthChangedEventArgs e)
26    {
27        this.lbText.Text = "您现在选择的月份是:" + e.NewDate.Month + "月";
28        this.lbText.ForeColor = Color.Blue;
29    }
30    protected void myCalendar_DayRender(object sender, DayRenderEventArgs e)
31    {
32        //让周六和周日变为不可选
33        e.Day.IsSelectable = !(e.Day.Date.DayOfWeek == DayOfWeek.Saturday || e.Day.Date.DayOfWeek == DayOfWeek.Sunday);
34        //如果日期可选,则日期的背景色变为Aqua色
35        if (e.Day.IsSelectable)
36        {
37            e.Cell.BackColor = Color.Aqua;
38        }
39    }
40}
posted on 2010-11-05 15:00  hao_2468  阅读(312)  评论(0编辑  收藏  举报