基于GridView日程管理

来源:互联网 发布:c语言调用函数被跳过 编辑:程序博客网 时间:2024/04/27 13:01

在 网上用GridView做日程管理很少几乎没有,于是自已写了一个,(平时工作忙,没时间,这段时间轻松点)给大家分享分享,有什么不足之处还需广大程序员同志们提一提

 思想:有一个基表一个字段time 值为:“00:00”到 23:00 这个是日和周能用到获取数据集绑到GridView上    具体的GridView每个单元格所对应的事务是根据GridView纵横得到的坐标时间,到事务表里面去取,然后根据取出来的数据在后台代码里动态生成一个html table有相应的链接放到模板列里。至于年列表是完全用后台代码动态生成一个DateTable绑到GridView上的

 

部分代码:

Calendar-week.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Calendar-Week.aspx.cs" Inherits="Calendar_Calendar_Week" %>

<!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 id="Head1" runat="server">
    <title>周列表</title>
    <script language="javascript" type="text/javascript" src="../JS/common.js"></script>
    <link href="../Styles/commonstyles.css" _fcksavedurl=""../Styles/commonstyles.css"" _fcksavedurl=""../Styles/commonstyles.css"" _fcksavedurl=""../Styles/commonstyles.css"" _fcksavedurl=""../Styles/commonstyles.css"" _fcksavedurl=""../Styles/commonstyles.css"" type="text/css" rel="stylesheet" />
    <script language="javascript">
    function OpenTranWin(tranClass,userName,tranDate,begTime)
    {
       window.open('TranDetailed.aspx?tranClass='+tranClass+'&userName='+userName+'&tranDate='+tranDate+'&begTime='+begTime,'window','height=220,width=450,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no,top=120,left=260');
       return false;
    }
   
    function CreateCalendarTran()
    {
       var reValue = window.showModalDialog('AddCalendarTran.aspx',window,'status:no;resizable:no;dialogHeight:360px;dialogWidth:600px;unadorne:no;scroll=no;center:yes');
       if(reValue == "N")
       {
          return false;
       }
       if(reValue == "Y")
       {
          return true;
       }
    }
   
    </script>
</head>
<body>
    <form id="form1" runat="server">
                <table id="tbl_QueryResult" cellpadding="0" cellspacing="0" border="0">
                    <tr>
                        <td width="15" valign="bottom">
                            <img src="../images/BackforSectionLeft.gif"></td>
                        <td id="td_HeadText" width="160" valign="bottom" background="../images/BackforSectionMiddle.gif"
                            style="font-size: 11px; color: white">
                            日程按排</td>
                        <td width="215" valign="bottom">
                            <img src="../images/BackforSectionRight.jpg"></td>
                        <td>
                            &nbsp;</td>
                    </tr>
                    <tr>
                        <td colspan="4" style="height: 10px">
                        </td>
                    </tr>
                </table>
        <table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="whitesmoke">
            <tr>
                <td colspan="3" style="height: 21px">
                    <asp:Button ID="btn_Day" runat="server" BackColor="White" Text="今天" OnClick="btn_Day_Click" />
                    &nbsp;
                    <asp:Button ID="btn_Yeah_LeftMove" runat="server" BackColor="White" Font-Bold="False" Text="<"
                        Width="25px" OnClick="btn_Yeah_LeftMove_Click" /><asp:DropDownList ID="drop_YeahList" runat="server" Width="100px" CssClass="SELECT" AutoPostBack="True" OnSelectedIndexChanged="drop_YeahList_SelectedIndexChanged"></asp:DropDownList><asp:Button ID="btn_Yeah_RightMove" runat="server" BackColor="White" Font-Bold="False" Text=">" Width="25px" OnClick="btn_Yeah_RightMove_Click" />
                    &nbsp;
                    <asp:Button ID="btn_Month_LeftMove" runat="server" BackColor="White" Font-Bold="False" Text="<"
                        Width="25px" OnClick="btn_Month_LeftMove_Click" /><asp:DropDownList ID="drop_MonthList" runat="server" Width="70px" CssClass="SELECT" AutoPostBack="True" OnSelectedIndexChanged="drop_MonthList_SelectedIndexChanged">
                        </asp:DropDownList><asp:Button ID="btn_Month_RightMove" runat="server" BackColor="White" Font-Bold="False" Text=">" Width="25px" OnClick="btn_Month_RightMove_Click" />
                    &nbsp;
                    <asp:Button ID="btn_Day_LeftMove" runat="server" BackColor="White" Font-Bold="False" Text="<"
                        Width="25px" OnClick="btn_Day_LeftMove_Click" /><asp:DropDownList ID="drop_DayList" runat="server" Width="70px" CssClass="SELECT" AutoPostBack="True" OnSelectedIndexChanged="drop_DayList_SelectedIndexChanged">
                        </asp:DropDownList><asp:Button ID="btn_Day_RightMove" runat="server" BackColor="White" Font-Bold="False" Text=">" Width="25px" OnClick="btn_Day_RightMove_Click" /></td>
                <td align="right" colspan="1" width="300" style="height: 21px">
                    <asp:Button ID="btnCreateTran" runat="server" BackColor="White" Font-Bold="False"
                            Text="新建事务" OnClientClick="return CreateCalendarTran()" OnClick="btnCreateTran_Click" />
                    &nbsp;&nbsp;
                    <asp:DropDownList ID="drop_To_TranList" runat="server" Width="113px" CssClass="SELECT" AutoPostBack="True" OnSelectedIndexChanged="drop_To_TranList_SelectedIndexChanged"><asp:ListItem Selected="True" Value="D">日列表</asp:ListItem>
                        <asp:ListItem Value="W">周列表</asp:ListItem>
                        <asp:ListItem Value="M">月列表</asp:ListItem>
                    </asp:DropDownList></td>
            </tr>
        </table>
        <div style="overflow: auto; width: 100%; height: 390px">
            <table border="0" cellpadding="0" cellspacing="0" width="98%">
                <tr>
                    <td colspan="2" height="5">
                    </td>
                </tr>
                <tr>
                    <td colspan="2" style="height: 14px">
                        <asp:GridView ID="grid_WeekList" runat="server" AutoGenerateColumns="False" Width="100%" Height="1px" OnRowDataBound="grid_WeekList_RowDataBound" OnRowCreated="grid_WeekList_RowCreated">
                            <Columns>
                                <asp:BoundField DataField="TIME" HeaderText="时间(0~6点)">
                                    <ItemStyle BackColor="WhiteSmoke" HorizontalAlign="Center" />
                                    <HeaderStyle ForeColor="White" Width="100px" />
                                </asp:BoundField>
                                <asp:TemplateField HeaderText="周日">
                                    <HeaderStyle ForeColor="White" HorizontalAlign="Center" />
                                    <ItemTemplate>
                                         <%# this.CreateTranLinkList(DataBinder.Eval(Container, "DataItem.TIME").ToString(),grid_WeekList.HeaderRow.Cells[1].Text) %>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="周一">
                                    <HeaderStyle ForeColor="White" />
                                     <ItemTemplate>
                                         <%# this.CreateTranLinkList(DataBinder.Eval(Container, "DataItem.TIME").ToString(), grid_WeekList.HeaderRow.Cells[2].Text)%>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="周二">
                                    <HeaderStyle ForeColor="White" />
                                     <ItemTemplate>
                                         <%# this.CreateTranLinkList(DataBinder.Eval(Container, "DataItem.TIME").ToString(), grid_WeekList.HeaderRow.Cells[3].Text)%>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="周三">
                                    <HeaderStyle ForeColor="White" />
                                     <ItemTemplate>
                                        <%# this.CreateTranLinkList(DataBinder.Eval(Container, "DataItem.TIME").ToString(), grid_WeekList.HeaderRow.Cells[4].Text)%>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="周四">
                                    <HeaderStyle ForeColor="White" />
                                     <ItemTemplate>
                                        <%# this.CreateTranLinkList(DataBinder.Eval(Container, "DataItem.TIME").ToString(), grid_WeekList.HeaderRow.Cells[5].Text)%>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="周五">
                                    <HeaderStyle ForeColor="White" />
                                     <ItemTemplate>
                                        <%# this.CreateTranLinkList(DataBinder.Eval(Container, "DataItem.TIME").ToString(), grid_WeekList.HeaderRow.Cells[6].Text)%>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="周六">
                                    <HeaderStyle ForeColor="White" />
                                     <ItemTemplate>
                                         <%# this.CreateTranLinkList(DataBinder.Eval(Container, "DataItem.TIME").ToString(), grid_WeekList.HeaderRow.Cells[7].Text)%>
                                    </ItemTemplate>
                                </asp:TemplateField>
                            </Columns>
                            <RowStyle Height="30px" HorizontalAlign="Left" VerticalAlign="Top" />
                            <HeaderStyle BackColor="#2177B3" />
                        </asp:GridView>
                    </td>
                </tr>
            </table>
            <asp:Button ID="hidBtnClick" runat="server" OnClick="hidBtnClick_Click" Style="display: none"
                Text="Button" /></div>
    </form>
</body>
</html>

Calendar-week.aspx.cs

using System;
using System.Data;
using System.Text;
using System.Configuration;
using System.Collections;
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;
using System.Drawing;

using OilPipe.PubInfo;
using OilPipe.OA.Calendar;

public partial class Calendar_Calendar_Week : PublicInfo
{

    CALENDAR_WEEK cw = new CALENDAR_WEEK();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            PageDropListInit(DateTime.Now.Year.ToString(), DateTime.Now.Month.ToString(), DateTime.Now.Day.ToString());
            GridBinder();
        }
    }

    //数据绑定
    private void GridBinder()
    {
        grid_WeekList.DataSource = cw.GetCalendaWeekList();
        grid_WeekList.DataBind();
    }


   
    //页面下拉列表初始化
    private void PageDropListInit(string yeah, string month, string day)
    {
        drop_YeahList.Items.Clear();
        drop_MonthList.Items.Clear();
        drop_DayList.Items.Clear();
        for (int i = 2007; i <= 2017; i++)
        {
            drop_YeahList.Items.Add(new ListItem(i.ToString() + "年", i.ToString()));
        }
        for (int i = 1; i <= 12; i++)
        {
            drop_MonthList.Items.Add(new ListItem(i.ToString() + "月", i.ToString()));
        }
        for (int i = 1; i <= reDay(yeah, month); i++)
        {
            drop_DayList.Items.Add(new ListItem(i.ToString() + "日", i.ToString()));
        }

        this.DropDownListSelectValue(drop_YeahList, yeah);
        this.DropDownListSelectValue(drop_MonthList, month);
        this.DropDownListSelectValue(drop_DayList, day);

        this.DropDownListSelectValue(drop_To_TranList, this.IsNull(Request.Params["type"]));
    }

    //加载天数
    private int reDay(string yeah, string month)
    {
        int day = 30;
        if (month == "2")
        {
            day = 28;
        }
        if (DateTime.IsLeapYear(Int32.Parse(yeah)) && (month == "2"))
        {
            day = 29;
        }
        if (month == "1" || month == "3" || month == "5" || month == "7" || month == "8" || month == "10" || month == "12")
        {
            day = 31;
        }

        return day;
    }
    protected void drop_YeahList_SelectedIndexChanged(object sender, EventArgs e)
    {
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder();
    }
    protected void drop_MonthList_SelectedIndexChanged(object sender, EventArgs e)
    {
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder();
    }
    protected void drop_DayList_SelectedIndexChanged(object sender, EventArgs e)
    {
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder();
    }
    protected void btn_Day_Click(object sender, EventArgs e)
    {
        PageDropListInit(DateTime.Now.Year.ToString(), DateTime.Now.Month.ToString(), DateTime.Now.Day.ToString());
        GridBinder();
    }

    protected void btn_Yeah_LeftMove_Click(object sender, EventArgs e)
    {
        int selectIndex = drop_YeahList.SelectedIndex;
        if (selectIndex > 0)
        {
            drop_YeahList.SelectedIndex = selectIndex - 1;
        }
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder();
    }

    protected void btn_Yeah_RightMove_Click(object sender, EventArgs e)
    {
        int selectIndex = drop_YeahList.SelectedIndex;
        if (selectIndex < drop_YeahList.Items.Count - 1)
        {
            drop_YeahList.SelectedIndex = selectIndex + 1;
        }
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder();
    }

    protected void btn_Month_LeftMove_Click(object sender, EventArgs e)
    {
        int selectIndex = drop_MonthList.SelectedIndex;
        if (selectIndex > 0)
        {
            drop_MonthList.SelectedIndex = selectIndex - 1;
        }
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder();
    }
    protected void btn_Month_RightMove_Click(object sender, EventArgs e)
    {
        int selectIndex = drop_MonthList.SelectedIndex;
        if (selectIndex < drop_MonthList.Items.Count - 1)
        {
            drop_MonthList.SelectedIndex = selectIndex + 1;
        }
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder();
    }
    protected void btn_Day_LeftMove_Click(object sender, EventArgs e)
    {
        int selectIndex = drop_DayList.SelectedIndex;
        if (selectIndex > 0)
        {
            drop_DayList.SelectedIndex = selectIndex - 1;
        }
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder();
    }
   
    protected void btn_Day_RightMove_Click(object sender, EventArgs e)
    {
        int selectIndex = drop_DayList.SelectedIndex;
        if (selectIndex < drop_DayList.Items.Count - 1)
        {
            drop_DayList.SelectedIndex = selectIndex + 1;
        }
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder();
    }

    protected void drop_To_TranList_SelectedIndexChanged(object sender, EventArgs e)
    {
        string flag = drop_To_TranList.SelectedValue;
        if (flag == "W")
        {
            Response.Redirect("Calendar-Week.aspx?type=W");
        }
        if (flag == "M")
        {
            Response.Redirect("Calendar-Month.aspx?type=M");
        }
        if (flag == "D")
        {
            Response.Redirect("Calendar-Day.aspx?type=D");
        }
    }

    protected void grid_WeekList_RowDataBound(object sender, GridViewRowEventArgs e)
    {

    }

    //返加字符型的月-日
    private string reDateMonth_Day(DateTime strartdt, int i)
    {
        DateTime dt = strartdt.AddDays(i);
        string md = dt.Month.ToString() + "/" + dt.Day.ToString();

        return md;
    }

    //生成链接列表,绑定到事务
    public string CreateTranLinkList(string time,string date)
    {

        string MD = date.Substring(date.IndexOf('(')+1);
        MD = MD.Remove(MD.IndexOf(')'));
        string month = MD.Split('/')[0].ToString();
        string day = MD.Split('/')[1].ToString();

       
        StringBuilder sb = new StringBuilder();
        DataTable dt = cw.GetCalendarAffair(drop_YeahList.SelectedValue + "-" + month + "-" + day + " " + time, this.SessionUserName);
        if (dt.Rows.Count > 0)
        {
            sb.Append(" <table width='100%' cellpadding='0' cellspacing='0' border='0'> ");

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                string begTime = dt.Rows[i]["BEG_TIME"].ToString();
                string tranDate = dt.Rows[i]["TRAN_DATE"].ToString();
                string tranClass = dt.Rows[i]["TRAN_CLASS"].ToString();
                string userName = dt.Rows[i]["USER_NAME"].ToString();
                sb.Append(" <tr> ");
                sb.Append(" <td>");
                sb.Append("[" + Convert.ToDateTime(dt.Rows[i]["BEG_TIME"]).ToShortTimeString());
                sb.Append("~");
                sb.Append(Convert.ToDateTime(dt.Rows[i]["END_TIME"]).ToShortTimeString() + "]");
                sb.Append(" </td> ");
                sb.Append(" </tr> ");
                sb.Append(" <tr> ");
                sb.Append(" <td>");
                sb.Append(" <A href='#' onclick=/"return OpenTranWin('" + tranClass + "','" + userName + "','" + tranDate + "','" + begTime + "')/">");
                sb.Append(dt.Rows[i]["TRAN_TEXT"].ToString());
                sb.Append(" </A> ");
                sb.Append(" </td> ");
                sb.Append(" </tr> ");
            }
            sb.Append(" </table> ");
        }
        return sb.ToString();
    }
    protected void grid_WeekList_RowCreated(object sender, GridViewRowEventArgs e)
    {
        string yeah = drop_YeahList.SelectedValue;
        string month = drop_MonthList.SelectedValue;
        string day = drop_DayList.SelectedValue;
        int week = (int)Convert.ToDateTime(yeah + "-" + month + "-" + day).DayOfWeek;
        DateTime TableStartDate = Convert.ToDateTime(yeah + "-" + month + "-" + day).AddDays(-week);

        if (e.Row.RowIndex == -1)
        {
            for (int i = 0; i <= 6; i++)
            {
                string Cell = e.Row.Cells[i + 1].Text;
                e.Row.Cells[i + 1].Text = Cell + "(" + reDateMonth_Day(TableStartDate, i) + ")";
            }
        }
        if (e.Row.RowIndex != -1)
        {
           e.Row.Cells[week + 1].BackColor = Color.Lavender;
        }
      
    }
    protected void btnCreateTran_Click(object sender, EventArgs e)
    {
        GridBinder();
    }

    protected void hidBtnClick_Click(object sender, EventArgs e)
    {
        GridBinder();
    }
}

Calendar-Month.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Calendar-Month.aspx.cs" Inherits="Calendar_Calendar_Month" %>

<!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 id="Head1" runat="server">
    <title>月列表</title>
    <script language="javascript" type="text/javascript" src="../JS/common.js"></script>
    <link href="../Styles/commonstyles.css" _fcksavedurl=""../Styles/commonstyles.css"" _fcksavedurl=""../Styles/commonstyles.css"" type="text/css" rel="stylesheet" />
   
    <script language="javascript" type="text/javascript">
    function OpenTranWin(tranClass,userName,tranDate,begTime)
    {
       window.open('TranDetailed.aspx?tranClass='+tranClass+'&userName='+userName+'&tranDate='+tranDate+'&begTime='+begTime,'window','height=220,width=450,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no,top=120,left=260');
       return false;
    }
   
    function CreateCalendarTran()
    {
       var reValue = window.showModalDialog('AddCalendarTran.aspx',window,'status:no;resizable:no;dialogHeight:360px;dialogWidth:600px;unadorne:no;scroll=no;center:yes');
       if(reValue == "N")
       {
          return false;
       }
       if(reValue == "Y")
       {
          return true;
       }
    }
   
    </script>
</head>
<body>
    <form id="form1" runat="server">
                <table id="tbl_QueryResult" cellpadding="0" cellspacing="0" border="0">
                    <tr>
                        <td width="15" valign="bottom">
                            <img src="../images/BackforSectionLeft.gif"></td>
                        <td id="td_HeadText" width="160" valign="bottom" background="../images/BackforSectionMiddle.gif"
                            style="font-size: 11px; color: white">
                            日程按排</td>
                        <td width="215" valign="bottom">
                            <img src="../images/BackforSectionRight.jpg"></td>
                        <td>
                            &nbsp;</td>
                    </tr>
                    <tr>
                        <td colspan="4" style="height: 10px">
                        </td>
                    </tr>
                </table>
        <table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="whitesmoke">
            <tr>
                <td colspan="3" style="height: 21px">
                    <asp:Button ID="btn_Day" runat="server" BackColor="White" Text="今天" OnClick="btn_Day_Click" />
                    &nbsp;
                    <asp:Button ID="btn_Yeah_LeftMove" runat="server" BackColor="White" Font-Bold="False" Text="<"
                        Width="25px" OnClick="btn_Yeah_LeftMove_Click" /><asp:DropDownList ID="drop_YeahList" runat="server" Width="100px" CssClass="SELECT" AutoPostBack="True" OnSelectedIndexChanged="drop_YeahList_SelectedIndexChanged"></asp:DropDownList><asp:Button ID="btn_Yeah_RightMove" runat="server" BackColor="White" Font-Bold="False" Text=">" Width="25px" OnClick="btn_Yeah_RightMove_Click" />
                    &nbsp;
                    <asp:Button ID="btn_Month_LeftMove" runat="server" BackColor="White" Font-Bold="False" Text="<"
                        Width="25px" OnClick="btn_Month_LeftMove_Click" /><asp:DropDownList ID="drop_MonthList" runat="server" Width="70px" CssClass="SELECT" AutoPostBack="True" OnSelectedIndexChanged="drop_MonthList_SelectedIndexChanged">
                        </asp:DropDownList><asp:Button ID="btn_Month_RightMove" runat="server" BackColor="White" Font-Bold="False" Text=">" Width="25px" OnClick="btn_Month_RightMove_Click" />
                    &nbsp;
                    <asp:Button ID="btn_Day_LeftMove" runat="server" BackColor="White" Font-Bold="False" Text="<"
                        Width="25px" OnClick="btn_Day_LeftMove_Click" /><asp:DropDownList ID="drop_DayList" runat="server" Width="70px" CssClass="SELECT" AutoPostBack="True" OnSelectedIndexChanged="drop_DayList_SelectedIndexChanged">
                        </asp:DropDownList><asp:Button ID="btn_Day_RightMove" runat="server" BackColor="White" Font-Bold="False" Text=">" Width="25px" OnClick="btn_Day_RightMove_Click" /></td>
                <td align="right" colspan="1" width="300" style="height: 21px">
                    <asp:Button ID="btnCreateTran" runat="server" OnClientClick="return CreateCalendarTran()" BackColor="White" Font-Bold="False"
                            Text="新建事务" OnClick="btnCreateTran_Click" />
                    &nbsp;&nbsp;
                    <asp:DropDownList ID="drop_To_TranList" runat="server" Width="113px" CssClass="SELECT" AutoPostBack="True" OnSelectedIndexChanged="drop_To_TranList_SelectedIndexChanged"><asp:ListItem Selected="True" Value="D">日列表</asp:ListItem>
                        <asp:ListItem Value="W">周列表</asp:ListItem>
                        <asp:ListItem Value="M">月列表</asp:ListItem>
                    </asp:DropDownList></td>
            </tr>
        </table>
        <div style="overflow: auto; width: 100%; height: 390px">
            <table border="0" cellpadding="0" cellspacing="0" width="98%">
                <tr>
                    <td colspan="2" height="5">
                    </td>
                </tr>
                <tr>
                    <td colspan="2" style="height: 14px">
                        <asp:GridView ID="grid_Calendar" runat="server" AutoGenerateColumns="False" Width="100%" OnRowDataBound="grid_Calendar_RowDataBound">
                            <Columns>
                                <asp:TemplateField HeaderText="星期日">
                                    <HeaderStyle ForeColor="White" VerticalAlign="Middle" />
                                    <ItemTemplate>
                                        <table width="100%" cellpadding="0" cellspacing="0" border="0">
                                           <tr bgcolor=LightGrey>
                                               <td>
                                                    <asp:Label ID="Label2" runat="server" Text='<%# Bind("Sunday") %>'></asp:Label>
                                               </td>
                                           </tr>
                                           <tr>
                                               <td>
                                                     <%# this.CreateTranLinkList(DataBinder.Eval(Container, "DataItem.Sunday").ToString())%>
                                               </td>
                                           </tr>
                                        </table> 
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="星期一">
                                    <HeaderStyle ForeColor="White" VerticalAlign="Middle" />
                                    <ItemTemplate>
                                        <table width="100%" cellpadding="0" cellspacing="0" border="0">
                                           <tr bgcolor=LightGrey>
                                               <td>
                                                    <asp:Label ID="Label3" runat="server" Text='<%# Bind("Monday") %>'></asp:Label>
                                               </td>
                                           </tr>
                                           <tr>
                                               <td>
                                                     <%# this.CreateTranLinkList(DataBinder.Eval(Container, "DataItem.Monday").ToString())%>
                                               </td>
                                           </tr>
                                        </table> 
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="星期二">
                                    <HeaderStyle ForeColor="White" VerticalAlign="Middle" />
                                    <ItemTemplate>
                                        <table width="100%" cellpadding="0" cellspacing="0" border="0">
                                           <tr bgcolor=LightGrey>
                                               <td>
                                                    <asp:Label ID="Label4" runat="server" Text='<%# Bind("Tuesday") %>'></asp:Label>
                                               </td>
                                           </tr>
                                           <tr>
                                               <td>
                                                     <%# this.CreateTranLinkList(DataBinder.Eval(Container, "DataItem.Tuesday").ToString())%>
                                               </td>
                                           </tr>
                                        </table> 
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="星期三">
                                    <HeaderStyle ForeColor="White" VerticalAlign="Middle" />
                                    <ItemTemplate>
                                        <table width="100%" cellpadding="0" cellspacing="0" border="0">
                                           <tr bgcolor=LightGrey>
                                               <td>
                                                     <asp:Label ID="Label5" runat="server" Text='<%# Bind("Wednesday") %>'></asp:Label>
                                               </td>
                                           </tr>
                                           <tr>
                                               <td>
                                                     <%# this.CreateTranLinkList(DataBinder.Eval(Container, "DataItem.Wednesday").ToString())%>
                                               </td>
                                           </tr>
                                        </table> 
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="星期四">
                                    <HeaderStyle ForeColor="White" VerticalAlign="Middle" />
                                    <ItemTemplate>
                                         <table width="100%" cellpadding="0" cellspacing="0" border="0">
                                           <tr bgcolor=LightGrey>
                                               <td>
                                                     <asp:Label ID="Label6" runat="server" Text='<%# Bind("Thursday") %>'></asp:Label>
                                               </td>
                                           </tr>
                                           <tr>
                                               <td>
                                                     <%# this.CreateTranLinkList(DataBinder.Eval(Container, "DataItem.Thursday").ToString())%>
                                               </td>
                                           </tr>
                                        </table> 
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="星期五">
                                    <HeaderStyle ForeColor="White" VerticalAlign="Middle" />
                                    <ItemTemplate>
                                         <table width="100%" cellpadding="0" cellspacing="0" border="0">
                                           <tr bgcolor=LightGrey>
                                               <td>
                                                     <asp:Label ID="Label7" runat="server" Text='<%# Bind("Friday") %>'></asp:Label>
                                               </td>
                                           </tr>
                                           <tr>
                                               <td>
                                                     <%# this.CreateTranLinkList(DataBinder.Eval(Container, "DataItem.Friday").ToString())%>
                                               </td>
                                           </tr>
                                        </table> 
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="星期六">
                                    <HeaderStyle ForeColor="White" VerticalAlign="Middle" />
                                    <ItemTemplate>
                                       <table width="100%" cellpadding="0" cellspacing="0" border="0">
                                           <tr bgcolor=LightGrey>
                                               <td>
                                                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("Saturday") %>'></asp:Label>
                                               </td>
                                           </tr>
                                           <tr>
                                               <td>
                                                     <%# this.CreateTranLinkList(DataBinder.Eval(Container, "DataItem.Saturday").ToString())%>
                                               </td>
                                           </tr>
                                        </table> 
                                    </ItemTemplate>
                                </asp:TemplateField>
                            </Columns>
                            <RowStyle Height="100px" VerticalAlign="Top" />
                            <HeaderStyle BackColor="#2177B3" Height="20px" />
                        </asp:GridView>
                    </td>
                </tr>
            </table>
            <asp:Button style="DISPLAY: none" id="hidBtnClick" onclick="hidBtnClick_Click" runat="server" Text="Button"></asp:Button>
        </div>
    </form>
</body>
</html>

Calendar-Month.aspx.cs

using System;
using System.Data;
using System.Text;
using System.Configuration;
using System.Collections;
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;
using System.Drawing;

using OilPipe.PubInfo;
using OilPipe.OA.Calendar;

public partial class Calendar_Calendar_Month : PublicInfo
{

    CALENDAR_MONTH cm = new CALENDAR_MONTH();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            PageDropListInit(DateTime.Now.Year.ToString(), DateTime.Now.Month.ToString(), DateTime.Now.Day.ToString());
            GridBinder(DateTime.Now.Year.ToString(), DateTime.Now.Month.ToString(), DateTime.Now.Day.ToString());
        }
      
      
    }

    private void GridBinder(string yeah, string month, string day)
    {
        grid_Calendar.DataSource = CreateCalendarDateTable(yeah,month,day);
        grid_Calendar.DataBind();
    }

    //生成日历DateTable
    private DataTable CreateCalendarDateTable(string yeah, string month, string day)
    {
        int maxDay = reDay(yeah, month);
        int week = (int)Convert.ToDateTime(yeah + "-" + month + "-01").DayOfWeek;
        int iDay = 1;
        int ispan = 1;
        DataTable Cdt = new DataTable();
        Cdt.Columns.Add(new DataColumn("Sunday", typeof(string)));
        Cdt.Columns.Add(new DataColumn("Monday", typeof(string)));
        Cdt.Columns.Add(new DataColumn("Tuesday", typeof(string)));
        Cdt.Columns.Add(new DataColumn("Wednesday", typeof(string)));
        Cdt.Columns.Add(new DataColumn("Thursday", typeof(string)));
        Cdt.Columns.Add(new DataColumn("Friday", typeof(string)));
        Cdt.Columns.Add(new DataColumn("Saturday", typeof(string)));
        for (int i = 0; i < 6; i++)
        {
            DataRow dr = Cdt.NewRow();
            if (iDay <= maxDay)
            {
                if (i == 0 && ispan <= week)
                {
                    ispan = ispan + 1;
                }
                else
                {
                    dr["Sunday"] = iDay.ToString();
                    iDay = iDay + 1;
                }
            }

            if (iDay <= maxDay)
            {
                if (i == 0 && ispan <= week)
                {
                    ispan = ispan + 1;
                }
                else
                {
                    dr["Monday"] = iDay.ToString();
                    iDay = iDay + 1;
                }
            }

            if (iDay <= maxDay)
            {
                if (i == 0 && ispan <= week)
                {
                    ispan = ispan + 1;
                }
                else
                {
                    dr["Tuesday"] = iDay.ToString();
                    iDay = iDay + 1;
                }
            }

            if (iDay <= maxDay)
            {
                if (i == 0 && ispan <= week)
                {
                    ispan = ispan + 1;
                }
                else
                {
                    dr["Wednesday"] = iDay.ToString();
                    iDay = iDay + 1;
                }
            }

            if (iDay <= maxDay)
            {
                if (i == 0 && ispan <= week)
                {
                    ispan = ispan + 1;
                }
                else
                {
                    dr["Thursday"] = iDay.ToString();
                    iDay = iDay + 1;
                }
            }

            if (iDay <= maxDay)
            {
                if (i == 0 && ispan <= week)
                {
                    ispan = ispan + 1;
                }
                else
                {
                    dr["Friday"] = iDay.ToString();
                    iDay = iDay + 1;
                }
            }

            if (iDay <= maxDay)
            {
                if (i == 0 && ispan <= week)
                {
                    ispan = ispan + 1;
                }
                else
                {
                    dr["Saturday"] = iDay.ToString();
                    iDay = iDay + 1;
                }
            }

            Cdt.Rows.Add(dr);
        }
      
        return Cdt;
      
    }

    //生成链接列表,绑定到事务
    public string CreateTranLinkList(string Date)
    {
        StringBuilder sb = new StringBuilder();
        DataTable dt = cm.GetCalendarAffair(drop_YeahList.SelectedValue + "-" + drop_MonthList.SelectedValue + "-" + Date, this.SessionUserName);
        if (dt.Rows.Count > 0)
        {
            sb.Append(" <table width='100%' cellpadding='0' cellspacing='0' border='0'> ");

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                string begTime = dt.Rows[i]["BEG_TIME"].ToString();
                string tranDate = dt.Rows[i]["TRAN_DATE"].ToString();
                string tranClass = dt.Rows[i]["TRAN_CLASS"].ToString();
                string userName = dt.Rows[i]["USER_NAME"].ToString();
                sb.Append(" <tr> ");
                sb.Append(" <td>");
                sb.Append("[" + Convert.ToDateTime(dt.Rows[i]["BEG_TIME"]).ToShortTimeString());
                sb.Append("~");
                sb.Append(Convert.ToDateTime(dt.Rows[i]["END_TIME"]).ToShortTimeString() + "]");
                sb.Append(" </td> ");
                sb.Append(" </tr> ");
                sb.Append(" <tr> ");
                sb.Append(" <td>");
                sb.Append(" <A href='#' onclick=/"return OpenTranWin('" + tranClass + "','" + userName + "','" + tranDate + "','" + begTime + "')/">");
                sb.Append(dt.Rows[i]["TRAN_TEXT"].ToString());
                sb.Append(" </A> ");
                sb.Append(" </td> ");
                sb.Append(" </tr> ");
            }
            sb.Append(" </table> ");
        }
        return sb.ToString();
    }

    //页面下拉列表初始化
    private void PageDropListInit(string yeah, string month, string day)
    {
        drop_YeahList.Items.Clear();
        drop_MonthList.Items.Clear();
        drop_DayList.Items.Clear();
        for (int i = 2007; i <= 2017; i++)
        {
            drop_YeahList.Items.Add(new ListItem(i.ToString() + "年", i.ToString()));
        }
        for (int i = 1; i <= 12; i++)
        {
            drop_MonthList.Items.Add(new ListItem(i.ToString() + "月", i.ToString()));
        }
        for (int i = 1; i <= reDay(yeah, month); i++)
        {
            drop_DayList.Items.Add(new ListItem(i.ToString() + "日", i.ToString()));
        }

        this.DropDownListSelectValue(drop_YeahList, yeah);
        this.DropDownListSelectValue(drop_MonthList, month);
        this.DropDownListSelectValue(drop_DayList, day);

        this.DropDownListSelectValue(drop_To_TranList, this.IsNull(Request.Params["type"]));
    }

    //加载天数
    private int reDay(string yeah, string month)
    {
        int day = 30;
        if (month == "2")
        {
            day = 28;
        }
        if (DateTime.IsLeapYear(Int32.Parse(yeah)) && (month == "2"))
        {
            day = 29;
        }
        if (month == "1" || month == "3" || month == "5" || month == "7" || month == "8" || month == "10" || month == "12")
        {
            day = 31;
        }

        return day;
    }
    protected void drop_YeahList_SelectedIndexChanged(object sender, EventArgs e)
    {
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
    }
    protected void drop_MonthList_SelectedIndexChanged(object sender, EventArgs e)
    {
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
    }
    protected void drop_DayList_SelectedIndexChanged(object sender, EventArgs e)
    {
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
    }
    protected void btn_Day_Click(object sender, EventArgs e)
    {
        PageDropListInit(DateTime.Now.Year.ToString(), DateTime.Now.Month.ToString(), DateTime.Now.Day.ToString());
        GridBinder(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
    }

    protected void btn_Yeah_LeftMove_Click(object sender, EventArgs e)
    {
        int selectIndex = drop_YeahList.SelectedIndex;
        if (selectIndex > 0)
        {
            drop_YeahList.SelectedIndex = selectIndex - 1;
        }
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
    }

    protected void btn_Yeah_RightMove_Click(object sender, EventArgs e)
    {
        int selectIndex = drop_YeahList.SelectedIndex;
        if (selectIndex < drop_YeahList.Items.Count - 1)
        {
            drop_YeahList.SelectedIndex = selectIndex + 1;
        }
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
    }

    protected void btn_Month_LeftMove_Click(object sender, EventArgs e)
    {
        int selectIndex = drop_MonthList.SelectedIndex;
        if (selectIndex > 0)
        {
            drop_MonthList.SelectedIndex = selectIndex - 1;
        }
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
    }
    protected void btn_Month_RightMove_Click(object sender, EventArgs e)
    {
        int selectIndex = drop_MonthList.SelectedIndex;
        if (selectIndex < drop_MonthList.Items.Count - 1)
        {
            drop_MonthList.SelectedIndex = selectIndex + 1;
        }
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
    }
    protected void btn_Day_LeftMove_Click(object sender, EventArgs e)
    {
        int selectIndex = drop_DayList.SelectedIndex;
        if (selectIndex > 0)
        {
            drop_DayList.SelectedIndex = selectIndex - 1;
        }
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
    }
    protected void btn_Day_RightMove_Click(object sender, EventArgs e)
    {
        int selectIndex = drop_DayList.SelectedIndex;
        if (selectIndex < drop_DayList.Items.Count - 1)
        {
            drop_DayList.SelectedIndex = selectIndex + 1;
        }
        PageDropListInit(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
        GridBinder(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
    }
    protected void drop_To_TranList_SelectedIndexChanged(object sender, EventArgs e)
    {
        string flag = drop_To_TranList.SelectedValue;
        if (flag == "W")
        {
            Response.Redirect("Calendar-Week.aspx?type=W");
        }
        if (flag == "M")
        {
            Response.Redirect("Calendar-Month.aspx?type=M");
        }
        if (flag == "D")
        {
            Response.Redirect("Calendar-Day.aspx?type=D");
        }
    }
    protected void grid_Calendar_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        int cellCount = e.Row.Cells.Count;
        string day = drop_DayList.SelectedValue;
        if (e.Row.RowIndex != -1)
        {
            for (int i = 0; i < cellCount; i++)
            {
                Label cellDay = (Label)e.Row.Cells[i].Controls[1];
                if (cellDay.Text == day)
                {
                    e.Row.Cells[i].BackColor = Color.Lavender;
                }
            }
        }
    }

    protected void btnCreateTran_Click(object sender, EventArgs e)
    {
        GridBinder(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
    }

    protected void hidBtnClick_Click(object sender, EventArgs e)
    {
        GridBinder(drop_YeahList.SelectedValue, drop_MonthList.SelectedValue, drop_DayList.SelectedValue);
    }
}

日列表

周列表:

月列表:

原创粉丝点击