VS.NET(C#)-4.9_Calendar控件应用案例二

Calendar控件应用案例二

通过下拉列表构造需要显示的月份的日期,然后显示这个月份的所有星期五。

        选择一定范围内的时间段。

        重点:DayRender事件,SelectedIndexChanged事件

UI设计视图

VS.NET(C#)-4.9_Calendar控件应用案例二

UI代码视图

<%@ PageLanguage="C#"AutoEventWireup="true"CodeFile="CalendarDemo1.aspx.cs"Inherits="CalendarDemo1"%>

 

<!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>无标题页</title>

</head>

<body>

    <form id="form1" runat="server">

        <div>

            <asp:Calendar ID="cld" runat="server" OnDayRender="cld_DayRender" OnVisibleMonthChanged="cld_VisibleMonthChanged">

                <SelectedDayStyle BorderColor="#FF8080" BorderStyle="Solid" BorderWidth="1px" Font-Bold="True" />

            </asp:Calendar>

        </div>

        <br />

        <br />

        Select a month

        <asp:DropDownList ID="ddl" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddl_SelectedIndexChanged">

            <asp:ListItem>1</asp:ListItem>

            <asp:ListItem>2</asp:ListItem>

            <asp:ListItem>3</asp:ListItem>

            <asp:ListItem>4</asp:ListItem>

            <asp:ListItem>5</asp:ListItem>

            <asp:ListItem>6</asp:ListItem>

            <asp:ListItem>7</asp:ListItem>

            <asp:ListItem>8</asp:ListItem>

            <asp:ListItem>9</asp:ListItem>

            <asp:ListItem>10</asp:ListItem>

            <asp:ListItem>11</asp:ListItem>

            <asp:ListItem>12</asp:ListItem>

        </asp:DropDownList>&nbsp;<asp:Button ID="btnTGIF" runat="server" Text="显示星期五" OnClick="btnTGIF_Click"/><br />

        <br />

        Day Range<br />

        <br />

        <asp:TextBox ID="txtStart" runat="server" Width="59px"></asp:TextBox>

        &nbsp;&nbsp; &nbsp;&nbsp;

        <asp:TextBox ID="txtEnd" runat="server" Width="57px"></asp:TextBox>

        &nbsp;

        <asp:Button ID="btnRange" runat="server" Text="Apply Range" OnClick="btnRange_Click" />

    </form>

</body>

</html>

CS代码视图

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Web.UI.HtmlControls;

public partial class CalendarDemo1 : System.Web.UI.Page

{

    protected void Page_Load(objectsender, EventArgs e)

    {

        if(!IsPostBack)

        {

            cld.VisibleDate = cld.TodaysDate;

            cld.SelectedDate = cld.TodaysDate;

            ddl.SelectedIndex =cld.VisibleDate.Month - 1;

        }

    }

    protected void ddl_SelectedIndexChanged(object sender, EventArgs e)

    {

        cld.SelectedDates.Clear();

        //通过下拉列表构造需要显示的月份的日期

        cld.VisibleDate = new DateTime(cld.VisibleDate.Year,Int32.Parse(ddl.SelectedItem.Value),1);

        //cld.SelectedDate= cld.VisibleDate;

    }

    protected void btnTGIF_Click(objectsender, EventArgs e)

    {

        intcurrentMonth = cld.VisibleDate.Month;

        intcurrentYear = cld.VisibleDate.Year;

        cld.SelectedDates.Clear();

        for(int i = 1; i <System.DateTime.DaysInMonth(currentYear,currentMonth);i++)

        {

            DateTimev_Date = new DateTime(currentYear,currentMonth,i);

            if(v_Date.DayOfWeek== DayOfWeek.Friday)

            {

                cld.SelectedDates.Add(v_Date);

            }

        }

    }

    protected void btnRange_Click(objectsender, EventArgs e)

    {

        intcurrentMonth = cld.VisibleDate.Month;

        intcurrentYear = cld.VisibleDate.Year;

        if(txtStart.Text !=""&&  txtEnd.Text !="")

        {

        DateTimestartDate = new DateTime(currentYear,currentMonth,Int32.Parse(txtStart.Text));

        DateTimeendDate = new DateTime(currentYear,currentMonth, Int32.Parse(txtEnd.Text));

        cld.SelectedDates.Clear();

       cld.SelectedDates.SelectRange(startDate,endDate);

        }

    }

    protected void cld_DayRender(objectsender, DayRenderEventArgs e)

    {

        //在单元格中显示Happy birthday

        if(e.Day.Date.Month==8 && e.Day.Date.Day == 9)

        {

            e.Cell.Controls.Add(new LiteralControl("<br/> Happy Birthday!"));

        }

        //显示春节快乐!

        if(e.Day.Date.Month == 2 && e.Day.Date.Day == 15)

        {

            e.Cell.Controls.Add(new LiteralControl("<br/> 春节快乐!"));

        }

    }

    protected void cld_VisibleMonthChanged(objectsender, MonthChangedEventArgs e)

    {

    }

}

UI运行时图

通过下拉列表构造需要显示的月份的日期,然后显示这个月份的所有星期五

VS.NET(C#)-4.9_Calendar控件应用案例二

选择一定范围内的时间段

VS.NET(C#)-4.9_Calendar控件应用案例二