📄 tasklist.aspx.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using UDS.Components;
namespace UDS.SubModule.Schedule
{
/// <summary>
/// TaskList 的摘要说明。
/// </summary>
public class TaskList : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid dgList;
public string Username="",ActualUsername="";
protected string Action;
protected System.Web.UI.HtmlControls.HtmlTable tblContainer;
protected System.Web.UI.WebControls.LinkButton lnkbtnToday;
protected System.Web.UI.WebControls.LinkButton lnkbtnHistory;
protected System.Web.UI.WebControls.LinkButton lnkbtnFinished;
protected System.Web.UI.WebControls.Button btnNew;
protected System.Web.UI.WebControls.Button btnAccept;
protected System.Web.UI.WebControls.Button btnCancel;
protected System.Web.UI.WebControls.DropDownList listStaff;
protected System.Web.UI.WebControls.Button btnSubscribe;
protected System.Web.UI.WebControls.LinkButton Linkbutton1;
protected System.Web.UI.WebControls.Table Table1;
protected System.Web.UI.WebControls.Button btnWeeklyView;
protected System.Web.UI.WebControls.Label lblInstru;
public static int displayType;
protected System.Web.UI.WebControls.Button btnCancelSubscription;
protected System.Web.UI.WebControls.LinkButton lnkbtnArranged;
public static string SchBeginDate;
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
HttpCookie UserCookie = Request.Cookies["Username"];
if(Session["Username"]==null)
{
Session["Username"] = UserCookie.Value.ToString();
}
ActualUsername = UserCookie.Value.ToString();
Session["ActualUsername"] = ActualUsername;
Username = (string)Session["Username"];
populateData();
SetStatus();
displayType = Request.QueryString["displayType"]!=null?Int32.Parse(Request.QueryString["displayType"]):1;
SchBeginDate = Request.QueryString["SchBeginDate"]!=null?Request.QueryString["SchBeginDate"]:DateTime.Today.AddDays(-(Convert.ToInt32(DateTime.Today.DayOfWeek))+1).ToShortDateString();
if(Request.QueryString["SchBeginDate"]!=null)
{
this.lnkbtnFinished .Enabled = false;
this.lnkbtnHistory .Enabled = false;
this.lnkbtnToday .Enabled = false;
this.Linkbutton1.Enabled = false;
this.btnAccept .Enabled = false;
this.btnCancel.Enabled = false;
this.btnNew .Enabled = false;
this.lnkbtnArranged .Enabled = false;
this.btnWeeklyView .Text = "返回";
PopulateWeeklyData();
}
else
{
InitData();
}
//Response.Write(DateTime.Today.AddDays(-(Convert.ToInt32(DateTime.Today.DayOfWeek))+1).ToShortDateString());
}
else
{
// if(Page.FindControl("Table1").ID=="")
//PopulateDateToTable(Calendar1.SelectedDate ,Calendar1.SelectedDates .Count);
}
//Response.Write(Session["Username"].ToString());
}
private void InitData()
{
Username = (string)Session["Username"];
this.tblContainer.Rows[0].Cells[0].Attributes.Add("background","../../images/maillistbutton2.gif");
this.btnNew.Attributes["onclick"]= "var newwin=window.open('Manage.aspx','newtask','toolbar=yes,scrollbars=yes,width=800,height=600,resizable=yes');newwin.moveTo(0,0);newwin.focus();";
Task task = new Task();
this.dgList.Visible = true;
this.btnAccept .Visible = true;
this.btnCancel.Visible = true;
//this.lnkbtnAdd.Attributes.Add("onclick","return dialwinprocess('"+DateTime.Today.ToShortDateString()+"','8','1','0')");
//this.lnkbtnAdd.Attributes.Add("onclick","self.location='CalendarView.aspx?Action=1';return true;");
DataTable mydb = Tools.ConvertDataReaderToDataTable(task.GetAllTaskBySomeone(DateTime.Today.ToShortDateString(),Username,displayType));
this.dgList .DataSource = mydb.DefaultView;
this.dgList.DataBind();
setgrid();
mydb.Dispose();
for(int t=0;t<4;t++)
{
if(t==displayType-1)
this.tblContainer.Rows[0].Cells[t].Attributes.Add("background","../../images/maillistbutton2.gif");
else
this.tblContainer.Rows[0].Cells[t].Attributes.Add("background","../../images/maillistbutton1.gif");
}
}
private void PopulateWeeklyData()
{
this.dgList .Visible = false;
this.lblInstru .Visible = false;
this.Table1 .Visible = true;
this.Table1.Rows.Clear();
//Response.Write("<table width=\"49%\" border=\"1\" align=\"center\" class=\"top\"><tr><td width=\"2%\" bgcolor=\"#A692F5\"> </td> <td width=\"18%\">未确认任务</td> <td width=\"2%\" bgcolor=\"BlanchedAlmond\"> </td> <td width=\"18%\">已确认任务</td></tr></table>");
//System.Globalization.DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek = System.DayOfWeek.Monday;
//System.Globalization.DateTimeFormatInfo.CurrentInfo.DayNames=new String[]{"七","一","二","三","四","五","六"};
PopulateDateToTable(DateTime.Parse(SchBeginDate),6);
}
#region 绑定数据至表格
public void PopulateDateToTable(DateTime sDate,int dayCount)
{
string Username = (string)Session["Username"];
string[] UnameStr = System.Text.RegularExpressions.Regex.Split(Username,",");
Task task = new Task();
#region 初始化日程数据
int[][] TaskData = new int[1][];
Hashtable htcolorlist = new Hashtable();
// 初始化天数据至ArrayList
// ArrayList demoDayData = new ArrayList();
// demoDayData.Add(9);
// demoDayData.Add(10);
// demoDayData.Add(11);
// demoDayData.Add(12);
// int[][] TaskData = new int[5][]; //每日的任务数据
// TaskData[0] = new int[]{0,0,0,0,0,13,14,15,16,17,18};
// TaskData[1] = new int[]{8,9,10,11,0,0,0,0,0,0,0};
// TaskData[2] = new int[]{0,9,10,11,12,13,0,0,0,0,0};
// TaskData[3] = new int[]{8,9,10,11,12,13,14,15,0,0,0};
// TaskData[4] = new int[]{0,0,0,0,0,0,0,0,0,17,18};
// demoData[5] = new int[]{0,0,0,0,0,0,0,0};
// demoData[6] = new int[]{0,0,0,0,0,0,0,0};
// demoData[7] = new int[]{0,0,0,0,0,0,0,0};
// 生成行和单元格
ArrayList DaySch = new ArrayList(dayCount+1);//根据选择的天数生成数组 加1是因为会增加一信息列
ArrayList DayTask = new ArrayList(dayCount+1); //记录每天的前五条任务ID
DaySch.Add(new int[5][]); //加入一个废列
DayTask.Add(new String[5]);
for(int p=0;p<dayCount;p++)
{
TaskData = new int[5][];
string tmpDate = sDate.AddDays(p).ToString();
String[] a = new String[5];
a = task.GetTop5DayTaskList(tmpDate,UnameStr[0].ToString());
// TaskData[0] = new int[]{0,0,0,0,0,13,14,15,16,17,18};
// TaskData[1] = new int[]{8,9,10,11,0,0,0,0,0,0,0};
// TaskData[2] = new int[]{0,9,10,11,12,13,0,0,0,0,0};
// TaskData[3] = new int[]{8,9,10,11,12,13,14,15,0,0,0};
// TaskData[4] = new int[]{0,0,0,0,0,0,0,0,0,17,18};
for(int k=0;k<a.Length;k++)
{
TaskData[k] = task.GetTaskPeriod(tmpDate,UnameStr[0],Int32.Parse(a[k].ToString()));
}
DaySch.Add(TaskData);
DayTask.Add(a);
}
#endregion
int numcells = dayCount;
// int startTimeNo = 8;
SqlDataReader dataReader = null;
dataReader = task.GetPeriodInfo();
ArrayList period = new ArrayList();
while(dataReader.Read())
period.Add(dataReader[1].ToString());
int numrows = period.Count;
// 初始化表头
TableRow r = new TableRow();
// 生成一个第一列,列头为时间
TableCell c = null;
if(Username!="")
{
for (int i=0; i<numcells+1; i++)
{
string s = sDate.AddDays(i-1).ToShortDateString()==DateTime.Today.ToShortDateString()?"<font color=white><b>"+DateTime.Today.ToShortDateString()+"</b></font>":sDate.AddDays(i-1).ToShortDateString();
LiteralControl lc = new LiteralControl((i==0)?"<font color=white> 时段 ":"<font color=white>"+s+" "+UDS.Components.Tools.ConvertDayOfWeekToZh(sDate.AddDays(i-1).DayOfWeek)+"</font>");
if(i==numcells)
lc.Text +=" <a href=tasklist.aspx?SchBeginDate="+DateTime.Parse(SchBeginDate).AddDays(-7).ToShortDateString()+"><font color=white size=3><</font></a> <a href=tasklist.aspx?SchBeginDate="+DateTime.Parse(SchBeginDate).AddDays(7).ToShortDateString()+"><font color=white size=3>></font></a>";
c = new TableCell();
c.CssClass = "top";
c.BackColor = Color.FromName("#337FB2");
c.Controls.Add(lc);
r.Cells.Add(c);
}
Table1.Rows.Add(r);
// 初始化表头结束
// 根据时间段共生成8行
for (int j=0; j<numrows; j++)
{
r = new TableRow();
// 每行根据选择的天数生成列
for (int i=0; i<dayCount+1; i++)
{
c = new TableCell();
Table newtable = new Table();
if (i==0)
if(j%2==0)
{
string []a = period[j].ToString().Split('-');
c.Controls.Add(new LiteralControl("<div style='position:absolute; width:86px; height:76px; z-index:1'><font size=3>"+a[0].ToString()+"</font></div>"));
}
else
c.Controls.Add(new LiteralControl("-"));
else
{ //如果不是第一列
// newtable.BorderWidth = 0;
//newtable.GridLines = System.Web.UI.WebControls .GridLines.Vertical;
// 在某列中新table设置开始
newtable = new Table();
TableRow nr = new TableRow();
for(int q=0;q<TaskData.Length;q++)
{
int[][] tmp = (int[][])DaySch[i];
String[] a = (String[])DayTask[i];
TableCell nc = new TableCell();
bool flag=false;
// string col = "";
string taskid = "";
// 遍历五个任务时间数组,看有没有被占
for(int co=0;co<TaskData.Length;co++)
{
if(Int32.Parse(tmp[co][j].ToString())!=0)
{
flag = true;
taskid = a[co].ToString();
}
}
if(flag)
{
nc.Controls.Add(new LiteralControl("<font color=#C597DD>0"+"</font>"));
nc.BackColor=Color.FromName("#C597DD");
nc.Style.Add("cursor","hand");
nc.Attributes.Add("onclick","return dialwinprocess('"+sDate.AddDays(i-1).ToShortDateString()+"','"+(8+j).ToString()+"','2','"+taskid+"')");
}
else
{
nc.Controls.Add(new LiteralControl("<font color=#FFFFFF>0</font>"));
}
nr.Cells.Add(nc);
}
newtable.CellPadding = 0;
newtable.CellSpacing = 0;
newtable.GridLines = System.Web.UI.WebControls .GridLines.Both;
newtable.BorderWidth = 0;
newtable.Rows.Add(nr);
// 新table设置结束
c.Controls.Add(newtable);
}
r.Cells.Add(c);
}
Table1.CellPadding = 0;
Table1.CellSpacing = 0;
Table1.GridLines = System.Web.UI.WebControls .GridLines.Horizontal;
Table1.BorderWidth = 1;
Table1.Rows.Add(r);
}
}
}
#endregion
public void SetStatus()
{
string Username = (string)Session["Username"];
string ActualUsername = (string)Session["ActualUsername"];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -