MyPendingDocument.aspx.cs
上传用户:tree100901
上传日期:2007-06-03
资源大小:2295k
文件大小:7k
源码类别:

OA系统

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Data.SqlClient;
  6. using System.Drawing;
  7. using System.Web;
  8. using System.Web.SessionState;
  9. using System.Web.UI;
  10. using System.Web.UI.WebControls;
  11. using System.Web.UI.HtmlControls;
  12. namespace OA
  13. {
  14. /// <summary>
  15. /// PendingDocument 的摘要说明。
  16. /// </summary>
  17. public class PendingDocument : System.Web.UI.Page
  18. {
  19. protected System.Data.SqlClient.SqlConnection MyConnection;
  20. protected System.Web.UI.WebControls.Label stats;
  21. protected System.Web.UI.WebControls.DataGrid MyDataGrid;
  22. private int totalDocument;
  23. public string PID;
  24. private void Page_Load(object sender, System.EventArgs e)
  25. {
  26. MyConnection=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
  27. SqlCommand MyCommand00 = new SqlCommand("PersonID",MyConnection);
  28. MyCommand00.CommandType = CommandType.StoredProcedure;
  29. MyCommand00.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 50));
  30. MyCommand00.Parameters["@Name"].Value = User.Identity.Name;
  31. MyConnection.Open();
  32. SqlDataReader myReader00 =  MyCommand00.ExecuteReader();
  33. myReader00.Read(); 
  34. PID = myReader00.GetInt32(0).ToString();
  35. myReader00.Close();
  36. if(!IsPostBack)
  37. {
  38. MyDataGrid.DataSource = CreateDataSource();
  39. MyDataGrid.DataBind();
  40. }
  41. // 在此处放置用户代码以初始化页面
  42. }
  43. private ICollection CreateDataSource() 
  44. {
  45. MyConnection=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
  46. SqlDataAdapter MyCommand = new SqlDataAdapter("SelectPendingDocument",MyConnection);
  47. MyCommand.SelectCommand.CommandType = CommandType.StoredProcedure;
  48. MyCommand.SelectCommand.Parameters.Add(new SqlParameter("@AccepterID", SqlDbType.Int, 4));
  49. MyCommand.SelectCommand.Parameters["@AccepterID"].Value = PID;
  50. DataSet ds = new DataSet();
  51. MyCommand.Fill(ds,"Document");
  52. MyConnection.Close();
  53. DataView dv = ds.Tables[0].DefaultView;
  54. totalDocument=ds.Tables[0].Rows.Count;
  55. if (Session["tablePendingDocument"] == null)
  56. Session["tablePendingDocument"] = ds.Tables[0];
  57. if (Session["sorterPendingDocument"] == null)
  58. {
  59. Session["sorterPendingDocument"] ="Date";
  60. Session["sortPendingDocument"]=" DESC";
  61. }
  62. dv.Sort = (String) Session["sorterPendingDocument"]+(String) Session["sortPendingDocument"];
  63. ShowStats();
  64. return dv;
  65. }
  66. public void MyDataGrid_PageIndexChanged(Object sender, DataGridPageChangedEventArgs e) 
  67. {
  68. DataGrid gridThatCausedEvent = (DataGrid) sender;
  69. gridThatCausedEvent.CurrentPageIndex = e.NewPageIndex;
  70. gridThatCausedEvent.DataSource = CreateDataSource();
  71. gridThatCausedEvent.DataBind();
  72. }
  73. public void MyDataGrid_Sort(Object sender, DataGridSortCommandEventArgs e) 
  74. {
  75. Session["sorterPendingDocument"] = (string)e.SortExpression;
  76. Session["sortPendingDocument"]=(Session["sortPendingDocument"].ToString()==" ASC")?
  77. " DESC":" ASC";
  78. MyDataGrid.DataSource = CreateDataSource();
  79. MyDataGrid.DataBind();
  80. foreach (DataGridItem item in MyDataGrid.Controls[0].Controls)
  81. {
  82. if (item.ItemType == ListItemType.Header)
  83. {
  84. Label lb =(Label)item.FindControl((string)Session["sorterPendingDocument"]);
  85. lb.Text = (Session["sortPendingDocument"].ToString()==" DESC")?
  86. "↓":"↑";
  87. }
  88. }
  89. }
  90. private void ShowStats() 
  91. {
  92. if (totalDocument == 0) 
  93. {
  94. MyDataGrid.Visible = false;
  95. stats.Text = "未找到符合条件的记录!";
  96. }
  97. else 
  98. {
  99. MyDataGrid.Visible = true;
  100. int startOffset = (totalDocument > 0) ? 
  101. (MyDataGrid.CurrentPageIndex*MyDataGrid.PageSize+1) : 0;
  102. int pageEndOffset = (MyDataGrid.CurrentPageIndex+1)*(MyDataGrid.PageSize);
  103. int endOffset = (pageEndOffset > totalDocument) ? totalDocument : pageEndOffset;
  104. string SortName;
  105. switch(Session["sorterPendingDocument"].ToString())
  106. {
  107. case "Title":
  108. SortName = "文档标题";
  109. break;
  110. case "Date":
  111. SortName="发送时间";
  112. break;
  113. case "PersonID":
  114. SortName = "发送人";
  115. break;
  116. case "WriterID":
  117. SortName = "作者";
  118. break;
  119. default:
  120. SortName="发送时间";
  121. break;
  122. }
  123. stats.Text = String.Format("<B>共</B>{2}<B>条记录中的</B>{0}-{1}<B>条记录  根据</B>{3}<B>排序</B>",
  124. startOffset,endOffset,totalDocument,SortName);
  125. MyDataGrid.PagerStyle.Visible = (totalDocument <= MyDataGrid.PageSize) ? false : true;
  126. }
  127. }
  128. public void MyDataGrid_ItemCreated(Object sender, DataGridItemEventArgs e) 
  129. {
  130. if((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
  131. {
  132. }
  133. if((e.Item.ItemType == ListItemType.Header))
  134. {
  135. for(int i = 0; i<4; i++)
  136. {
  137. Label lb = new Label();
  138. if(i==0)
  139. lb.ID = "Title";
  140. if(i==1)
  141. lb.ID = "Date";
  142. if(i==2)
  143. lb.ID = "PersonID";
  144. if(i==3)
  145. lb.ID = "WriterID";
  146. lb.Text = "↓";
  147. e.Item.Cells[i].Controls.Add(lb);
  148. }
  149. }         
  150. }
  151. public void MyDataGrid_ItemDataBound(Object sender, DataGridItemEventArgs e) 
  152. {
  153. if((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
  154. {
  155. string DocumentID = DataBinder.Eval(e.Item.DataItem, "DocumentID").ToString();
  156. string SendType = DataBinder.Eval(e.Item.DataItem, "Process").ToString();
  157. string AID =e.Item.Cells[2].Text.Trim();
  158. SqlCommand MyCommand0 = new SqlCommand("PersonName",MyConnection);
  159. MyCommand0.CommandType = CommandType.StoredProcedure;
  160. MyCommand0.Parameters.Add(new SqlParameter("@PersonID", SqlDbType.Int, 4));
  161. MyCommand0.Parameters["@PersonID"].Value = AID;
  162. if(MyConnection.State.ToString()=="Closed")
  163. MyConnection.Open(); 
  164. SqlDataReader myReader0 =  MyCommand0.ExecuteReader();
  165. myReader0.Read();
  166. e.Item.Cells[2].Text = myReader0["Name"].ToString();
  167. myReader0.Close();
  168. MyConnection.Close(); 
  169. string WID = DataBinder.Eval(e.Item.DataItem, "WriterID").ToString();
  170. SqlCommand MyCommand1 = new SqlCommand("PersonName",MyConnection);
  171. MyCommand1.CommandType = CommandType.StoredProcedure;
  172. MyCommand1.Parameters.Add(new SqlParameter("@PersonID", SqlDbType.Int, 4));
  173. MyCommand1.Parameters["@PersonID"].Value = WID;
  174. if(MyConnection.State.ToString()=="Closed")
  175. MyConnection.Open(); 
  176. SqlDataReader myReader1 =  MyCommand1.ExecuteReader();
  177. myReader1.Read();
  178. e.Item.Cells[3].Text = myReader1["Name"].ToString();
  179. myReader1.Close();
  180. MyConnection.Close(); 
  181. if(e.Item.Cells[0].Text.Length>15)
  182. e.Item.Cells[0].Text = e.Item.Cells[0].Text.Substring(0,15)+"......";
  183. if(WID==PID)
  184. e.Item.Cells[4].Text="回复";
  185.     int FP= SendType.IndexOf("→");
  186. if(FP==-1)
  187. e.Item.Cells[5].Text="平行审阅";
  188. else
  189.                 e.Item.Cells[5].Text="流程审阅";
  190. }
  191. }
  192. #region Web 窗体设计器生成的代码
  193. override protected void OnInit(EventArgs e)
  194. {
  195. //
  196. // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
  197. //
  198. InitializeComponent();
  199. base.OnInit(e);
  200. }
  201. /// <summary>
  202. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  203. /// 此方法的内容。
  204. /// </summary>
  205. private void InitializeComponent()
  206. {    
  207. this.Load += new System.EventHandler(this.Page_Load);
  208. }
  209. #endregion
  210. }
  211. }