在 网上用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>
</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" />
<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" />
<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" />
<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" />
<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='#' οnclick=/"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>
</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" />
<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" />
<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" />
<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" />
<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" οnclick="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='#' οnclick=/"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);
}
}
日列表
周列表:
月列表: