C# calendar 日历代码全解析

来源:互联网 发布:摄像头监控软件笔记本 编辑:程序博客网 时间:2024/05/05 13:51

代码如下:

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 = Convert.ToDateTime(y+"-"+m+"-"+(Calendar1.SelectedDate.Day).ToString());
        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" %>

<!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 style="text-align: left">
        <asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">选择你的日期</asp:LinkButton>&nbsp;
        <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>
        &nbsp;
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="确定" /><br />
        &nbsp;<asp:Label ID="Label1" runat="server" ForeColor="Fuchsia"></asp:Label>&nbsp;<br />
   
    </div>
    </form>
</body>
</html>

 

原文转自:http://hi.baidu.com/bazhaohua/blog/item/8a19f8fc600b631e08244d5d.html

原创粉丝点击