VS.NET(C#)-4.9_Calendar控件应用案例二
Calendar控件应用案例二
通过下拉列表构造需要显示的月份的日期,然后显示这个月份的所有星期五。
选择一定范围内的时间段。
重点:DayRender事件,SelectedIndexChanged事件
UI设计视图
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> <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>
<asp:TextBox ID="txtEnd" runat="server" Width="57px"></asp:TextBox>
<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运行时图
通过下拉列表构造需要显示的月份的日期,然后显示这个月份的所有星期五
选择一定范围内的时间段