C# calendar 日曆程式碼全解析
程式碼如下:
using System;
………………
public partial class Default: System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack ) //如果第一次載入頁面使日曆,label不可見
{
Calendar1.Visible = false;
Label1.Visible = false;
for (int y=1949;y<2050 ;y++ ) //給日期1下拉框新增年
{
DropDownList1.Items.Add(y.ToString());
}
for (int m = 1; m < 13;m++ ) //給日期2下拉框新增月
{
DropDownList2.Items.Add(m.ToString());
}
DropDownList1.Text = (DateTime.Now.Year).ToString(); //給下拉框預設顯示當前日期
DropDownList2.Text = (DateTime.Now.Month).ToString();
}
}
//當下拉框變化時讓日曆顯示行對應的日期
protected void DropDownList_SelectedIndexChanged(object sender, EventArgs e)
{
string y = DropDownList1.SelectedValue;
string m = DropDownList2.SelectedValue;
Calendar1.VisibleDate
Calendar1.SelectedDate = Convert.ToDateTime(y + "-" + m + "-" + (Calendar1.SelectedDate.Day).ToString());
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
Calendar1.Visible = true; //當點選linkbutton的時候才彈出日曆
}
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
DropDownList2.Text = Calendar1.SelectedDate.Month.ToString(); //當日期通過day從一個月變化到另一個月時dropdownlist的月也跟著變化
}
protected void MonthChanged(object sender, MonthChangedEventArgs e)
{
DropDownList1.Text = e.NewDate.Year.ToString();//當點選日曆上的上下月時dropdownlist的年和月也跟著變化
DropDownList2.Text = e.NewDate.Month.ToString();
}
protected void Button1_Click(object sender, EventArgs e)//觸發單擊事件,讓label顯示,把選擇的日期顯示出來
{
Label1.Visible = true;
Label1.Text = (Calendar1.SelectedDate.Year).ToString() +"-"+ (Calendar1.SelectedDate.Month).ToString() +"-"+ (Calendar1.SelectedDate.Day).ToString();
}
}
設計頁面程式碼如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>無標題頁</title>
</head>
<body>
<form id="form1" runat="server">
<div style="text-align: left">
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">選擇你的日期</asp:LinkButton>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList_SelectedIndexChanged">
</asp:DropDownList>
年
<asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList_SelectedIndexChanged">
</asp:DropDownList>
月
<asp:Calendar ID="Calendar1" runat="server" BackColor="#FFFFCC" BorderColor="#FFCC66" Font-Names="Verdana" Font-Size="8pt" ForeColor="#663399"
Height="200px" Width="220px" BorderWidth="1px" DayNameFormat="Shortest" ShowGridLines="True" OnVisibleMonthChanged="MonthChanged" OnSelectionChanged="Calendar1_SelectionChanged" Visible="False">
<SelectedDayStyle BackColor="#CCCCFF" Font-Bold="True" />
<TodayDayStyle BackColor="#FFCC66" ForeColor="White" />
<OtherMonthDayStyle ForeColor="#CC9966" />
<NextPrevStyle Font-Size="9pt" ForeColor="#FFFFCC" />
<DayHeaderStyle Font-Bold="True" Height="1px" BackColor="#FFCC66" />
<TitleStyle BackColor="#990000" Font-Bold="True" Font-Size="9pt"
ForeColor="#FFFFCC" />
<SelectorStyle BackColor="#FFCC66" />
</asp:Calendar>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="確定" /><br />
<asp:Label ID="Label1" runat="server" ForeColor="Fuchsia"></asp:Label> <br />
</div>
</form>
</body>
</html>