您的位置:首页 > 编程语言 > C#

VS2.0控件之日历《Calendar》C#

2006-06-09 16:49 691 查看
在此之前,我也做过一个VB对日历控件进行操作的例题,但是多少有点烦琐!

原理是一样的,地址是 http://thcjp.cnblogs.com/archive/2006/02/28/339622.html

下面是今天用#做的例题




前台HTML代码




<%

@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_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>无标题页</title>


</head>


<body>


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


<div>


控制日历的选择模式:<br />


<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">


<asp:ListItem Value="None">无选择</asp:ListItem>


<asp:ListItem Value="Day">天</asp:ListItem>


<asp:ListItem Value="DayWeek">天、周</asp:ListItem>


<asp:ListItem Value="DayWeekMonth">天、周、月</asp:ListItem>


</asp:DropDownList>


<asp:Calendar ID="Calendar1" runat="server" BackColor="#FFFFCC" BorderColor="#FFCC66"


BorderWidth="1px" DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt"


ForeColor="#663399" Height="200px" NextMonthText="下月" NextPrevFormat="ShortMonth"


OnSelectionChanged="Calendar1_SelectionChanged" PrevMonthText="上月" SelectMonthText="选全月"


SelectWeekText="选全周" ShowGridLines="True" Width="328px" DayHeaderStyle-Font-Italic="true" OnDayRender="Calendar1_DayRender" OnVisibleMonthChanged="Calendar1_VisibleMonthChanged">


<SelectedDayStyle BackColor="#CCCCFF" BorderStyle="Double" Font-Bold="True" />


<TodayDayStyle BackColor="#FFCC66" ForeColor="White" />


<SelectorStyle BackColor="#FFCC66" />


<OtherMonthDayStyle ForeColor="#CC9966" />


<NextPrevStyle Font-Size="9pt" ForeColor="#FFFFCC" />


<DayHeaderStyle BackColor="#FFCC66" Font-Bold="True" Height="1px" Font-Italic="True" />


<TitleStyle BackColor="#990000" Font-Bold="True" Font-Size="9pt" ForeColor="#FFFFCC" />


<WeekendDayStyle BackColor="LightSalmon" />


</asp:Calendar>


<br />


<br />


<asp:Label ID="Label1" runat="server"></asp:Label><br />


选择的 月是:<asp:Label ID="Label2" runat="server"></asp:Label><br />


选择的 年是:<asp:Label ID="Label4" runat="server"></asp:Label><br />


<br />


显示输入的时间


<asp:DropDownList ID="ye" runat="server">


</asp:DropDownList>年<asp:DropDownList ID="mo" runat="server">


</asp:DropDownList>月<asp:DropDownList ID="da" runat="server">


</asp:DropDownList>日


<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="切" Width="85px" /><br />


<br />





</div>


</form>


</body>


</html>






后台C#代码


using System;


using System.Data;


using System.Configuration;


using System.Web;


using System.Web.Security;


using System.Web.UI;


using System.Web.UI.WebControls;


using System.Web.UI.WebControls.WebParts;


using System.Web.UI.HtmlControls;




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






{


string[][] arr; //声明一个数组来存储一年中的节日


protected void Page_Load(object sender, EventArgs e)






{


arr = new string[13][];//数组


for(int i=0;i<13;i++)






{


arr[i]=new string[32];


}


//下面是储存在数组中的节日


arr[1][1] = "圆蛋节";


arr[2][15]="没啥节样";


arr[3][8] = "妇女节";


arr[4][15] = "没啥节样";


arr[5][1] = "大假哦";


arr[6][1] = "娃娃节";


arr[7][1] = "jiandang节";


arr[7][15] = "洪川医药正式启用";


arr[8][1] = "兵仔儿节";


arr[9][10] = "孔子节";


arr[9][28] = "热烈庆祝,今天是川哥的生日哈!";


arr[10][1] = "大假哦";


arr[11][15] = "没啥节样";


arr[12][25] = "鬼节";


//填充年月日下拉菜单


for (int y = 1980; y < 2050; y++)






{//填充年下拉列表


ye.Items.Add(y.ToString());


}


for (int m = 1; m < 13; m++)






{//填充月下拉列表


mo.Items.Add(m.ToString());


}


for (int d = 1; d < 32; d++)






{//填充日下拉列表


da.Items.Add(d.ToString());


}





}


protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)






{


switch (DropDownList1.SelectedValue)//循环判断






{


case "None"://注意是冒号


Calendar1.SelectionMode = CalendarSelectionMode.None;//设置选择方式为 没有


break;//跳出循环


case "DayWeekMonth":


Calendar1.SelectionMode = CalendarSelectionMode.DayWeekMonth;


break;


case "DayWeek":


Calendar1.SelectionMode = CalendarSelectionMode.DayWeek;


break;


case "Day":


Calendar1.SelectionMode = CalendarSelectionMode.Day;


break;


}


}


protected void Calendar1_SelectionChanged(object sender, EventArgs e)






{//当选择一个日期时激发


Label1.Text ="完整日期是 :"+ Calendar1.SelectedDate.ToShortDateString();


Label2.Text = Calendar1.SelectedDate.Month.ToString()+"月";


Label4.Text = Calendar1.SelectedDate.Year.ToString()+"年";


}


protected void Calendar1_VisibleMonthChanged(object sender, MonthChangedEventArgs e)






{//当切换到其他月的时候激发


Label1.Text = "你真的要换到下个月??";


}


protected void Button1_Click(object sender, EventArgs e)






{//指定日期事件


string y = ye.SelectedValue.ToString();//得到年的值


string m = mo.SelectedValue.ToString();//得到月的值


string d = da.SelectedValue.ToString();//得到日的值


Calendar1.VisibleDate =Convert.ToDateTime(y+"-"+m+"-"+d);//指定被选中的日期


}


protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)//注意这个事件名称是 DayRender






{


CalendarDay d = e.Day;//设置当前日期


TableCell c = e.Cell;//设置当前表格


if (d.IsOtherMonth)






{//如果是其他月份的话就清除本来的节日


c.Controls.Clear();


}


else






{


try






{


string txt = arr[d.Date.Month][d.Date.Day];//得到完整的当前[月][日]


if (txt != string.Empty)//看下里面是否有东西






{


c.Controls.Add(new LiteralControl("<br>"+txt));//如果有的话,就在日期数字后面换行显示出来


}


}


catch(Exception exe)






{


Response.Write(exe.ToString());


}


}


}


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: