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

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. /// ManageMeeting 的摘要说明。
  16. /// </summary>
  17. public class ManageMeeting : System.Web.UI.Page
  18. {
  19. protected System.Data.SqlClient.SqlConnection MyConnection;
  20. protected System.Web.UI.WebControls.Label stats;
  21. private int totalMeeting;
  22. protected System.Web.UI.WebControls.DataGrid MyDataGrid;
  23. protected System.Web.UI.WebControls.Button Button1;
  24. public string PID;
  25. private void Page_Load(object sender, System.EventArgs e)
  26. {
  27. CheckUser CHU = new CheckUser();
  28. CHU.UserName = User.Identity.Name;
  29. PID = CHU.UserID.ToString();
  30. if(CHU.Is_FileManager() == false)
  31. Response.Write("<script>alert('对不起,你没有查看此页面的权限!');history.back(2)</" + "script>");
  32. MyConnection=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
  33. if(!IsPostBack)
  34. {
  35. MyDataGrid.DataSource = CreateDataSource();
  36. MyDataGrid.DataBind();
  37. }
  38. // 在此处放置用户代码以初始化页面
  39. }
  40. private ICollection CreateDataSource() 
  41. {
  42. MyConnection=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
  43. SqlDataAdapter MyCommand = new SqlDataAdapter("SelectAllMeeting",MyConnection);
  44. MyCommand.SelectCommand.CommandType = CommandType.StoredProcedure;
  45. DataSet ds = new DataSet();
  46. MyCommand.Fill(ds,"Meeting");
  47. MyConnection.Close();
  48. DataView dv = ds.Tables[0].DefaultView;
  49. totalMeeting=ds.Tables[0].Rows.Count;
  50. if (Session["tableAllMeeting"] == null)
  51. Session["tableAllMeeting"] = ds.Tables[0];
  52. if (Session["sorterAllMeeting"] == null)
  53. {
  54. Session["sorterAllMeeting"] ="Date";
  55. Session["sortAllMeeting"]=" DESC";
  56. }
  57. dv.Sort = (String) Session["sorterAllMeeting"]+(String) Session["sortAllMeeting"];
  58. ShowStats();
  59. return dv;
  60. }
  61. public void MyDataGrid_PageIndexChanged(Object sender, DataGridPageChangedEventArgs e) 
  62. {
  63. DataGrid gridThatCausedEvent = (DataGrid) sender;
  64. gridThatCausedEvent.CurrentPageIndex = e.NewPageIndex;
  65. gridThatCausedEvent.DataSource = CreateDataSource();
  66. gridThatCausedEvent.DataBind();
  67. }
  68. public void MyDataGrid_Sort(Object sender, DataGridSortCommandEventArgs e) 
  69. {
  70. Session["sorterAllMeeting"] = (string)e.SortExpression;
  71. Session["sortAllMeeting"]=(Session["sortAllMeeting"].ToString()==" ASC")?
  72. " DESC":" ASC";
  73. MyDataGrid.DataSource = CreateDataSource();
  74. MyDataGrid.DataBind();
  75. foreach (DataGridItem item in MyDataGrid.Controls[0].Controls)
  76. {
  77. if (item.ItemType == ListItemType.Header)
  78. {
  79. Label lb =(Label)item.FindControl((string)Session["sorterAllMeeting"]);
  80. lb.Text = (Session["sortAllMeeting"].ToString()==" DESC")?
  81. "↓":"↑";
  82. }
  83. }
  84. }
  85. private void ShowStats() 
  86. {
  87. if (totalMeeting == 0) 
  88. {
  89. MyDataGrid.Visible = false;
  90. stats.Text = "未找到符合条件的记录!";
  91. }
  92. else 
  93. {
  94. MyDataGrid.Visible = true;
  95. int startOffset = (totalMeeting > 0) ? 
  96. (MyDataGrid.CurrentPageIndex*MyDataGrid.PageSize+1) : 0;
  97. int pageEndOffset = (MyDataGrid.CurrentPageIndex+1)*(MyDataGrid.PageSize);
  98. int endOffset = (pageEndOffset > totalMeeting) ? totalMeeting : pageEndOffset;
  99. string SortName;
  100. switch(Session["sorterAllMeeting"].ToString())
  101. {
  102. case "Title":
  103. SortName = "会议主题";
  104. break;
  105. case "Date":
  106. SortName="发送时间";
  107. break;
  108. case "PersonID":
  109. SortName = "发送人";
  110. break;
  111. case "Caller":
  112. SortName = "召集人";
  113. break;
  114. case "MeetingDate":
  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,totalMeeting,SortName)+MyDataGrid.Items.Count.ToString();
  123. MyDataGrid.PagerStyle.Visible = (totalMeeting <= 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<5; i++)
  134. {
  135. Label lb = new Label();
  136. if(i==0)
  137. lb.ID = "Title";
  138. if(i==1)
  139. lb.ID = "MeetingDate";
  140. if(i==2)
  141. lb.ID = "Date";
  142. if(i==3)
  143. lb.ID = "Caller";
  144. if(i==4)
  145. lb.ID = "PersonID";
  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 MeetingID = DataBinder.Eval(e.Item.DataItem, "MeetingID").ToString();
  156. string AID0 = DataBinder.Eval(e.Item.DataItem, "AccepterID").ToString();
  157. AID0 =AID0.Trim().Replace("(","").Replace(")","");
  158. string AID =CleanInput(AID0);
  159. string CID0 = DataBinder.Eval(e.Item.DataItem, "Caller").ToString();
  160. CID0 =CID0.Trim().Replace("(","").Replace(")","");
  161. string CID =CleanInput(CID0);
  162. string [] str = AID.Split(new char[] {','});
  163. string [] Cstr = CID.Split(new char[] {','});
  164. string SID = e.Item.Cells[4].Text.Trim();
  165. string CallerName="";
  166. for(int i=0;i<Cstr.Length;i++)
  167. {
  168. if(Cstr[i]!="")
  169. {
  170. SqlCommand MyCommand2 = new SqlCommand("PersonName",MyConnection);
  171. MyCommand2.CommandType = CommandType.StoredProcedure;
  172. MyCommand2.Parameters.Add(new SqlParameter("@PersonID", SqlDbType.Int, 4));
  173. MyCommand2.Parameters["@PersonID"].Value = Cstr[i];
  174. if(MyConnection.State.ToString()=="Closed")
  175. MyConnection.Open(); 
  176. SqlDataReader myReader2 =  MyCommand2.ExecuteReader();
  177. while(myReader2.Read())
  178. CallerName += ","+myReader2["Name"].ToString();
  179. myReader2.Close();
  180. }
  181. }
  182. e.Item.Cells[3].Text = CallerName.Substring(1);
  183. SqlCommand MyCommand1 = new SqlCommand("PersonName",MyConnection);
  184. MyCommand1.CommandType = CommandType.StoredProcedure;
  185. MyCommand1.Parameters.Add(new SqlParameter("@PersonID", SqlDbType.Int, 4));
  186. MyCommand1.Parameters["@PersonID"].Value = SID;
  187. if(MyConnection.State.ToString()=="Closed")
  188. MyConnection.Open(); 
  189. SqlDataReader myReader1 =  MyCommand1.ExecuteReader();
  190. while(myReader1.Read())
  191. e.Item.Cells[4].Text = myReader1["Name"].ToString();
  192. myReader1.Close();
  193.                 string AccepterName="";
  194. for(int i=0;i<str.Length;i++)
  195. {
  196. if(str[i]!="")
  197. {
  198. SqlCommand MyCommand2 = new SqlCommand("PersonName",MyConnection);
  199. MyCommand2.CommandType = CommandType.StoredProcedure;
  200. MyCommand2.Parameters.Add(new SqlParameter("@PersonID", SqlDbType.Int, 4));
  201. MyCommand2.Parameters["@PersonID"].Value = str[i];
  202. if(MyConnection.State.ToString()=="Closed")
  203. MyConnection.Open(); 
  204. SqlDataReader myReader2 =  MyCommand2.ExecuteReader();
  205. while(myReader2.Read())
  206. AccepterName += ","+myReader2["Name"].ToString();
  207. myReader2.Close();
  208. }
  209. }
  210. e.Item.ToolTip = "本通知发送给了"+AccepterName.Substring(1);
  211. MyConnection.Close(); 
  212. if(e.Item.Cells[0].Text.Length>15)
  213. e.Item.Cells[0].Text = e.Item.Cells[0].Text.Substring(0,15)+"......";
  214. LinkButton myDeleteButton1;
  215. LinkButton myDeleteButton2;
  216. LinkButton myDeleteButton3;
  217. myDeleteButton1 = (LinkButton) e.Item.Cells[5].Controls[0];
  218. myDeleteButton1.Attributes.Add("onclick", @"if(confirm('你确认要修改这条记录吗?')) window.open('EditMeeting.aspx?MeetingID="+MeetingID+"','_blank','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,revisable=no,left=100,top=0,width=550,height=352');return false;");
  219. myDeleteButton2 = (LinkButton) e.Item.Cells[6].Controls[0];
  220. myDeleteButton2.Attributes.Add("onclick", @"window.open('ViewMeetingState.aspx?MeetingID="+MeetingID+"','_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;");
  221. myDeleteButton3 = (LinkButton) e.Item.Cells[7].Controls[0];
  222. myDeleteButton3.Attributes.Add("onclick", @"return confirm('你确认要删除这条记录吗?');");
  223. }
  224. }
  225. public void MyDataGrid_Delete(Object sender, DataGridCommandEventArgs E) 
  226. {
  227. SqlCommand MyCommand = new SqlCommand("DeleteMeeting",MyConnection);
  228. MyCommand.CommandType = CommandType.StoredProcedure;
  229. MyCommand.Parameters.Add(new SqlParameter("@MeetingID", SqlDbType.Int, 4));
  230. MyCommand.Parameters["@MeetingID"].Value = MyDataGrid.DataKeys[(int)E.Item.ItemIndex];
  231. if(MyConnection.State.ToString()=="Closed")
  232. MyConnection.Open(); 
  233. try
  234. {
  235. MyCommand.ExecuteNonQuery();
  236. }
  237. catch (SqlException)
  238. {
  239. RegisterStartupScript("alert","<script>alert('出现错误:未能删除记录!')</" + "script>");
  240. }
  241. MyConnection.Close();
  242. if ((MyDataGrid.CurrentPageIndex!=0)&&((int)E.Item.ItemIndex==0))
  243. {
  244. if (MyDataGrid.Items.Count==1)
  245. MyDataGrid.CurrentPageIndex-=1;
  246. }
  247. MyDataGrid.DataSource = CreateDataSource();
  248. MyDataGrid.DataBind();
  249. Response.Write("<script>opener.location.href=opener.location.href;opener=null;window.close();</"+"script>");
  250. }
  251. #region Web 窗体设计器生成的代码
  252. override protected void OnInit(EventArgs e)
  253. {
  254. //
  255. // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
  256. //
  257. InitializeComponent();
  258. base.OnInit(e);
  259. }
  260. /// <summary>
  261. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  262. /// 此方法的内容。
  263. /// </summary>
  264. private void InitializeComponent()
  265. {    
  266. this.Button1.Click += new System.EventHandler(this.Button1_Click);
  267. this.Load += new System.EventHandler(this.Page_Load);
  268. }
  269. #endregion
  270. private void Button1_Click(object sender, System.EventArgs e)
  271. {
  272. string bb = "";
  273. for( int i = 0; i < MyDataGrid.Items.Count; i++ )
  274. {
  275. RadioButton rb0 = ( RadioButton )MyDataGrid.Items[i].FindControl("rb_0");
  276. RadioButton rb1 = ( RadioButton )MyDataGrid.Items[i].FindControl("rb_1");
  277. RadioButton rb2 = ( RadioButton )MyDataGrid.Items[i].FindControl("rb_2");
  278. if(rb0.Checked)
  279. bb = "0";
  280. if(rb1.Checked)
  281. bb = "1";
  282. if(rb2.Checked)
  283. bb = "2";
  284. SqlCommand MyCommand2= new SqlCommand("UpdateMeetingResult", MyConnection);
  285. MyCommand2.CommandType = CommandType.StoredProcedure;
  286. MyCommand2.Parameters.Add(new SqlParameter("@MeetingID", SqlDbType.Int, 4));
  287. MyCommand2.Parameters["@MeetingID"].Value = Int32.Parse(MyDataGrid.Items[i].Cells[9].Text.ToString().Trim());
  288. MyCommand2.Parameters.Add(new SqlParameter("@Result", SqlDbType.NVarChar,10));
  289. MyCommand2.Parameters["@Result"].Value = bb;
  290. if(MyConnection.State.ToString()=="Closed")
  291. MyConnection.Open(); 
  292. MyCommand2.ExecuteNonQuery();
  293. MyConnection.Close();
  294. }
  295. }
  296. public String CleanInput(string strIn)
  297. {
  298. return System.Text.RegularExpressions.Regex.Replace(strIn, @"[^w,]", ""); 
  299. }
  300. }
  301. }