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

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. /// MyDocument 的摘要说明。
  16. /// </summary>
  17. public class MyDocument : 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("SelectMyDocument",MyConnection);
  47. MyCommand.SelectCommand.CommandType = CommandType.StoredProcedure;
  48. MyCommand.SelectCommand.Parameters.Add(new SqlParameter("@WriterID", SqlDbType.NVarChar, 50));
  49. MyCommand.SelectCommand.Parameters["@WriterID"].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["tableMyDocument"] == null)
  56. Session["tableMyDocument"] = ds.Tables[0];
  57. if (Session["sorterMyDocument"] == null)
  58. {
  59. Session["sorterMyDocument"] ="Date";
  60. Session["sortMyDocument"]=" DESC";
  61. }
  62. dv.Sort = (String) Session["sorterMyDocument"]+(String) Session["sortMyDocument"];
  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["sorterMyDocument"] = (string)e.SortExpression;
  76. Session["sortMyDocument"]=(Session["sortMyDocument"].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["sorterMyDocument"]);
  85. lb.Text = (Session["sortMyDocument"].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["sorterMyDocument"].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. LinkButton myDeleteButton;
  191. myDeleteButton = (LinkButton) e.Item.Cells[6].Controls[0];
  192. myDeleteButton.Attributes.Add("onclick", @"return confirm('你确认要删除此信息吗?');");
  193. }
  194. }
  195. public void MyDataGrid_Delete(Object sender, DataGridCommandEventArgs E) 
  196. {
  197. SqlCommand MyCommand = new SqlCommand("DeleteDocument",MyConnection);
  198. MyCommand.CommandType = CommandType.StoredProcedure;
  199. MyCommand.Parameters.Add(new SqlParameter("@DocumentID", SqlDbType.Int, 4));
  200. MyCommand.Parameters["@DocumentID"].Value = MyDataGrid.DataKeys[(int)E.Item.ItemIndex];
  201. if(MyConnection.State.ToString()=="Closed")
  202. MyConnection.Open(); 
  203. try
  204. {
  205. MyCommand.ExecuteNonQuery();
  206. }
  207. catch (SqlException)
  208. {
  209. RegisterStartupScript("alert","<script>alert('出现错误:未能删除记录!')</" + "script>");
  210. }
  211. MyConnection.Close();
  212. if ((MyDataGrid.CurrentPageIndex!=0)&&((int)E.Item.ItemIndex==0))
  213. {
  214. if (MyDataGrid.Items.Count==1)
  215. MyDataGrid.CurrentPageIndex-=1;
  216. }
  217. MyDataGrid.DataSource = CreateDataSource();
  218. MyDataGrid.DataBind();
  219. Response.Write("<script>opener.location.href=opener.location.href;opener=null;window.close();</"+"script>");
  220. }
  221. #region Web 窗体设计器生成的代码
  222. override protected void OnInit(EventArgs e)
  223. {
  224. //
  225. // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
  226. //
  227. InitializeComponent();
  228. base.OnInit(e);
  229. }
  230. /// <summary>
  231. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  232. /// 此方法的内容。
  233. /// </summary>
  234. private void InitializeComponent()
  235. {    
  236. this.Load += new System.EventHandler(this.Page_Load);
  237. }
  238. #endregion
  239. }
  240. }