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

OA系统

开发平台:

C#

  1. using System;
  2. using System.IO;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Data.SqlClient;
  7. using System.Drawing;
  8. using System.Web;
  9. using System.Web.SessionState;
  10. using System.Web.UI;
  11. using System.Web.UI.WebControls;
  12. using System.Web.UI.HtmlControls;
  13. namespace OA
  14. {
  15. /// <summary>
  16. /// MySenderMessage 的摘要说明。
  17. /// </summary>
  18. public class MySenderMessage : System.Web.UI.Page
  19. {
  20. protected System.Data.SqlClient.SqlConnection MyConnection;
  21. protected System.Web.UI.WebControls.DataGrid MyDataGrid;
  22. private int totalMessage;
  23. protected System.Web.UI.WebControls.Label stats;
  24. public string PID;
  25. private void Page_Load(object sender, System.EventArgs e)
  26. {
  27. MyConnection=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
  28. SqlCommand MyCommand00 = new SqlCommand("PersonID",MyConnection);
  29. MyCommand00.CommandType = CommandType.StoredProcedure;
  30. MyCommand00.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 50));
  31. MyCommand00.Parameters["@Name"].Value = User.Identity.Name;
  32. MyConnection.Open();
  33. SqlDataReader myReader00 =  MyCommand00.ExecuteReader();
  34. myReader00.Read(); 
  35. PID = myReader00.GetInt32(0).ToString();
  36. myReader00.Close();
  37. // 在此处放置用户代码以初始化页面
  38. if(!IsPostBack)
  39. {
  40. MyDataGrid.DataSource = CreateDataSource();
  41. MyDataGrid.DataBind();
  42. }
  43. }
  44. private ICollection CreateDataSource() 
  45. {
  46. MyConnection=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
  47. SqlDataAdapter MyCommand = new SqlDataAdapter("SelectSenderMessage",MyConnection);
  48. MyCommand.SelectCommand.CommandType = CommandType.StoredProcedure;
  49. MyCommand.SelectCommand.Parameters.Add(new SqlParameter("@PersonID", SqlDbType.Int, 4));
  50. MyCommand.SelectCommand.Parameters["@PersonID"].Value = Int32.Parse(PID);
  51. DataSet ds = new DataSet();
  52. MyCommand.Fill(ds,"Message");
  53.             MyConnection.Close();
  54. DataView dv = ds.Tables[0].DefaultView;
  55.             totalMessage=ds.Tables[0].Rows.Count;
  56. if (Session["tableSenderMessage"] == null)
  57. Session["tableSenderMessage"] = ds.Tables[0];
  58. if (Session["sorterSenderMessage"] == null)
  59. {
  60. Session["sorterSenderMessage"] ="Date";
  61. Session["sortSenderMessage"]=" DESC";
  62. }
  63. dv.Sort = (String) Session["sorterSenderMessage"]+(String) Session["sortSenderMessage"];
  64. ShowStats();
  65. return dv;
  66. }
  67. public void MyDataGrid_PageIndexChanged(Object sender, DataGridPageChangedEventArgs e) 
  68. {
  69. DataGrid gridThatCausedEvent = (DataGrid) sender;
  70. gridThatCausedEvent.CurrentPageIndex = e.NewPageIndex;
  71. gridThatCausedEvent.DataSource = CreateDataSource();
  72. gridThatCausedEvent.DataBind();
  73. }
  74. public void MyDataGrid_Sort(Object sender, DataGridSortCommandEventArgs e) 
  75. {
  76. Session["sorterSenderMessage"] = (string)e.SortExpression;
  77. Session["sortSenderMessage"]=(Session["sortSenderMessage"].ToString()==" ASC")?
  78. " DESC":" ASC";
  79. MyDataGrid.DataSource = CreateDataSource();
  80. MyDataGrid.DataBind();
  81. foreach (DataGridItem item in MyDataGrid.Controls[0].Controls)
  82. {
  83. if (item.ItemType == ListItemType.Header)
  84. {
  85. Label lb =(Label)item.FindControl((string)Session["sorterSenderMessage"]);
  86. lb.Text = (Session["sortSenderMessage"].ToString()==" DESC")?
  87. "↓":"↑";
  88. }
  89. }
  90. }
  91. private void ShowStats() 
  92. {
  93. if (totalMessage == 0) 
  94. {
  95. MyDataGrid.Visible = false;
  96. stats.Text = "未找到符合条件的记录!";
  97. }
  98. else 
  99. {
  100. MyDataGrid.Visible = true;
  101. int startOffset = (totalMessage > 0) ? 
  102. (MyDataGrid.CurrentPageIndex*MyDataGrid.PageSize+1) : 0;
  103. int pageEndOffset = (MyDataGrid.CurrentPageIndex+1)*(MyDataGrid.PageSize);
  104. int endOffset = (pageEndOffset > totalMessage) ? totalMessage : pageEndOffset;
  105. string SortName;
  106. switch(Session["sorterSenderMessage"].ToString())
  107. {
  108. case "Contents":
  109.                           SortName = "信息内容";
  110. break;
  111. case "Date":
  112. SortName="发送时间";
  113. break;
  114. case "AccepterID":
  115. SortName = "接收人";
  116. break;
  117. default:
  118. SortName="发送时间";
  119. break;
  120. }
  121. stats.Text = String.Format("<B>共</B>{2}<B>条记录中的</B>{0}-{1}<B>条记录  根据</B>{3}<B>排序</B>",
  122. startOffset,endOffset,totalMessage,SortName);
  123. MyDataGrid.PagerStyle.Visible = (totalMessage <= MyDataGrid.PageSize) ? false : true;
  124. }
  125. }
  126. public void MyDataGrid_ItemCreated(Object sender, DataGridItemEventArgs e) 
  127. {
  128. if((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
  129. {
  130. }
  131. if((e.Item.ItemType == ListItemType.Header))
  132. {
  133. for(int i = 0; i<3; i++)
  134. {
  135. Label lb = new Label();
  136. if(i==0)
  137. lb.ID = "Contents";
  138. if(i==1)
  139. lb.ID = "Date";
  140. if(i==2)
  141. lb.ID = "AccepterID";
  142. lb.Text = "↓";
  143. e.Item.Cells[i].Controls.Add(lb);
  144. }
  145. }         
  146. }
  147. public void MyDataGrid_ItemDataBound(Object sender, DataGridItemEventArgs e) 
  148. {
  149. if((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
  150. {
  151. string MessageID = DataBinder.Eval(e.Item.DataItem, "MessageID").ToString();
  152. string AID =e.Item.Cells[2].Text.Trim().Replace("(","").Replace(")","");
  153. string [] str = AID.Split(new char[] {','});
  154. string Accepter="";
  155. for(int i=0; i<str.Length; i++)
  156. {
  157. SqlCommand MyCommand0 = new SqlCommand("PersonName",MyConnection);
  158. MyCommand0.CommandType = CommandType.StoredProcedure;
  159. MyCommand0.Parameters.Add(new SqlParameter("@PersonID", SqlDbType.Int, 4));
  160. MyCommand0.Parameters["@PersonID"].Value = str[i];
  161. if(MyConnection.State.ToString()=="Closed")
  162. MyConnection.Open(); 
  163. SqlDataReader myReader0 =  MyCommand0.ExecuteReader();
  164. while(myReader0.Read())
  165. Accepter += ","+myReader0["Name"].ToString();
  166. myReader0.Close();
  167. MyConnection.Close(); 
  168. }
  169. e.Item.Cells[2].ToolTip = Accepter.Substring(1);
  170. e.Item.Cells[2].Style["cursor"] = "hand";
  171. if(Accepter.Length>11)
  172.                    Accepter = Accepter.Substring(1,10)+"......";
  173. else
  174.                    Accepter = Accepter.Substring(1);
  175. e.Item.Cells[2].Text = Accepter;
  176. string Contents = DataBinder.Eval(e.Item.DataItem, "Contents").ToString();
  177. string Cont = System.Text.RegularExpressions.Regex.Replace(Contents,"<[^>]+>","");
  178. if(Cont.Length>15)
  179.                 Cont = Cont.Substring(0,15)+"......";
  180.                 e.Item.Cells[0].Text = "<a href = javascript:window.open('MessageDetails.aspx?MessageID="+MessageID+"','_blank','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,revisable=no,left=100,top=0,width=423,height=303');window.close();>"+Cont+"</a>";
  181. if(e.Item.Cells[3].Text.Trim()!=null)
  182. e.Item.Cells[3].Text="<a href=javascript:window.open('MessageAttachment\\"+e.Item.Cells[3].Text+"','','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,revisable=no,left=100,top=0');window.close();>"+e.Item.Cells[3].Text+"</a>";
  183. LinkButton myDeleteButton1;
  184. LinkButton myDeleteButton2;
  185. LinkButton myDeleteButton3;
  186. myDeleteButton1 = (LinkButton) e.Item.Cells[4].Controls[0];
  187. myDeleteButton1.Attributes.Add("onclick", @"if(confirm('你确认要修改并发送这条信息吗?')) window.open('EditMessage.aspx?MessageID="+MessageID+"','_blank','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,revisable=no,left=100,top=0,width=600,height=500');return false;");
  188. myDeleteButton2 = (LinkButton) e.Item.Cells[5].Controls[0];
  189. myDeleteButton2.Attributes.Add("onclick", @"window.open('ViewMessageState.aspx?MessageID="+MessageID+"','_blank','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,revisable=no,left=100,top=0,width=185,height="+str.Length*35+"');return false;");
  190. myDeleteButton3 = (LinkButton) e.Item.Cells[6].Controls[0];
  191. myDeleteButton3.Attributes.Add("onclick", @"return confirm('你确认要删除此信息吗?');");
  192. }
  193. }
  194. public void MyDataGrid_Delete(Object sender, DataGridCommandEventArgs E) 
  195. {
  196. string MA="";
  197. SqlCommand MyCommand0 = new SqlCommand("SelectMessageAttachment",MyConnection);
  198. MyCommand0.CommandType = CommandType.StoredProcedure;
  199. MyCommand0.Parameters.Add(new SqlParameter("@MessageID", SqlDbType.Int, 4));
  200. MyCommand0.Parameters["@MessageID"].Value = MyDataGrid.DataKeys[(int)E.Item.ItemIndex];
  201. if(MyConnection.State.ToString()=="Closed")
  202. MyConnection.Open(); 
  203. SqlDataReader myReader0 =  MyCommand0.ExecuteReader();
  204. while(myReader0.Read())
  205. MA= myReader0["Attachment"].ToString();
  206. myReader0.Close();
  207. MyConnection.Close(); 
  208. if((MA.Trim()!="")&&(File.Exists(Server.MapPath("MessageAttachment\"+MA))))
  209.             File.Delete(Server.MapPath("MessageAttachment\"+MA));
  210. SqlCommand MyCommand = new SqlCommand("DeleteSenderMessage",MyConnection);
  211. MyCommand.CommandType = CommandType.StoredProcedure;
  212. MyCommand.Parameters.Add(new SqlParameter("@MessageID", SqlDbType.Int, 4));
  213. MyCommand.Parameters["@MessageID"].Value = MyDataGrid.DataKeys[(int)E.Item.ItemIndex];
  214. if(MyConnection.State.ToString()=="Closed")
  215. MyConnection.Open(); 
  216. try
  217.   {
  218.   MyCommand.ExecuteNonQuery();
  219.   }
  220.   catch (SqlException)
  221.   {
  222. RegisterStartupScript("alert","<script>alert('出现错误:未能删除记录!')</" + "script>");
  223. }
  224.     MyConnection.Close();
  225. if ((MyDataGrid.CurrentPageIndex!=0)&&((int)E.Item.ItemIndex==0))
  226. {
  227. if (MyDataGrid.Items.Count==1)
  228. MyDataGrid.CurrentPageIndex-=1;
  229. }
  230. MyDataGrid.DataSource = CreateDataSource();
  231. MyDataGrid.DataBind();
  232. Response.Write("<script>opener.location.href=opener.location.href;opener=null;window.close();</"+"script>");
  233. }
  234. #region Web 窗体设计器生成的代码
  235. override protected void OnInit(EventArgs e)
  236. {
  237. //
  238. // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
  239. //
  240. InitializeComponent();
  241. base.OnInit(e);
  242. }
  243. /// <summary>
  244. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  245. /// 此方法的内容。
  246. /// </summary>
  247. private void InitializeComponent()
  248. {    
  249. this.Load += new System.EventHandler(this.Page_Load);
  250. }
  251. #endregion
  252. }
  253. }