MySchedule.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. /// MySchedule 的摘要说明。
  16. /// </summary>
  17. public class MySchedule : System.Web.UI.Page
  18. {
  19. protected System.Data.SqlClient.SqlConnection MyConnection;
  20. protected System.Web.UI.WebControls.Label stats;
  21. private int totalSchedule;
  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. 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. if(!IsPostBack)
  38. {
  39. MyDataGrid.DataSource = CreateDataSource();
  40. MyDataGrid.DataBind();
  41. }
  42. // 在此处放置用户代码以初始化页面
  43. }
  44. private ICollection CreateDataSource() 
  45. {
  46. MyConnection=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
  47. SqlDataAdapter MyCommand = new SqlDataAdapter("SelectMySchedule",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,"Schedule");
  53. MyConnection.Close();
  54. DataView dv = ds.Tables[0].DefaultView;
  55. totalSchedule=ds.Tables[0].Rows.Count;
  56. if (Session["tableMySchedule"] == null)
  57. Session["tableMySchedule"] = ds.Tables[0];
  58. if (Session["sorterMySchedule"] == null)
  59. {
  60. Session["sorterMySchedule"] ="Date";
  61. Session["sortMySchedule"]=" DESC";
  62. }
  63. dv.Sort = (String) Session["sorterMySchedule"]+(String) Session["sortMySchedule"];
  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["sorterMySchedule"] = (string)e.SortExpression;
  77. Session["sortMySchedule"]=(Session["sortMySchedule"].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["sorterMySchedule"]);
  86. lb.Text = (Session["sortMySchedule"].ToString()==" DESC")?
  87. "↓":"↑";
  88. }
  89. }
  90. }
  91. private void ShowStats() 
  92. {
  93. if (totalSchedule == 0) 
  94. {
  95. MyDataGrid.Visible = false;
  96. stats.Text = "未找到符合条件的记录!";
  97. }
  98. else 
  99. {
  100. MyDataGrid.Visible = true;
  101. int startOffset = (totalSchedule > 0) ? 
  102. (MyDataGrid.CurrentPageIndex*MyDataGrid.PageSize+1) : 0;
  103. int pageEndOffset = (MyDataGrid.CurrentPageIndex+1)*(MyDataGrid.PageSize);
  104. int endOffset = (pageEndOffset > totalSchedule) ? totalSchedule : pageEndOffset;
  105. string SortName;
  106. switch(Session["sorterMySchedule"].ToString())
  107. {
  108. case "Contents":
  109. SortName = "日程计划";
  110. break;
  111. case "Date":
  112. SortName="编制时间";
  113. break;
  114. case "PlanTime":
  115. SortName = "预定时间";
  116. break;
  117. case "Result":
  118. SortName = "计划状态";
  119. break;
  120. default:
  121. SortName="编制时间";
  122. break;
  123. }
  124. stats.Text = String.Format("<B>共</B>{2}<B>条记录中的</B>{0}-{1}<B>条记录  根据</B>{3}<B>排序</B>",
  125. startOffset,endOffset,totalSchedule,SortName)+MyDataGrid.Items.Count.ToString();
  126. MyDataGrid.PagerStyle.Visible = (totalSchedule <= MyDataGrid.PageSize) ? false : true;
  127. }
  128. }
  129. public void MyDataGrid_ItemCreated(Object sender, DataGridItemEventArgs e) 
  130. {
  131. if((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
  132. {
  133. }
  134. if((e.Item.ItemType == ListItemType.Header))
  135. {
  136. for(int i = 0; i<4; i++)
  137. {
  138. Label lb = new Label();
  139. if(i==0)
  140. lb.ID = "Contents";
  141. if(i==1)
  142. lb.ID = "PlanTime";
  143. if(i==2)
  144. lb.ID = "Date";
  145. if(i==3)
  146. lb.ID = "Result";
  147. lb.Text = "↓";
  148. e.Item.Cells[i].Controls.Add(lb);
  149. }
  150. }         
  151. }
  152. public void MyDataGrid_ItemDataBound(Object sender, DataGridItemEventArgs e) 
  153. {
  154. if((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
  155. {
  156.  
  157. if(e.Item.Cells[0].Text.Length>15)
  158. e.Item.Cells[0].Text = e.Item.Cells[0].Text.Substring(0,15)+"......";
  159. LinkButton myDeleteButton;
  160. myDeleteButton = (LinkButton) e.Item.Cells[4].Controls[0];
  161. myDeleteButton.Attributes.Add("onclick", @"return confirm('你确认要删除此信息吗?');");
  162. }
  163. }
  164. public void MyDataGrid_Delete(Object sender, DataGridCommandEventArgs E) 
  165. {
  166. SqlCommand MyCommand = new SqlCommand("DeleteSchedule",MyConnection);
  167. MyCommand.CommandType = CommandType.StoredProcedure;
  168. MyCommand.Parameters.Add(new SqlParameter("@ScheduleID", SqlDbType.Int, 4));
  169. MyCommand.Parameters["@ScheduleID"].Value = MyDataGrid.DataKeys[(int)E.Item.ItemIndex];
  170. if(MyConnection.State.ToString()=="Closed")
  171. MyConnection.Open(); 
  172. try
  173. {
  174. MyCommand.ExecuteNonQuery();
  175. }
  176. catch (SqlException)
  177. {
  178. RegisterStartupScript("alert","<script>alert('出现错误:未能删除记录!')</" + "script>");
  179. }
  180. MyConnection.Close();
  181. if ((MyDataGrid.CurrentPageIndex!=0)&&((int)E.Item.ItemIndex==0))
  182. {
  183. if (MyDataGrid.Items.Count==1)
  184. MyDataGrid.CurrentPageIndex-=1;
  185. }
  186. MyDataGrid.DataSource = CreateDataSource();
  187. MyDataGrid.DataBind();
  188. Response.Write("<script>opener.location.href=opener.location.href;opener=null;window.close();</"+"script>");
  189. }
  190. private void Button1_Click(object sender, System.EventArgs e)
  191. {
  192. string bb = "";
  193. for( int i = 0; i < MyDataGrid.Items.Count; i++ )
  194. {
  195. RadioButton rb0 = ( RadioButton )MyDataGrid.Items[i].FindControl("rb_0");
  196. RadioButton rb1 = ( RadioButton )MyDataGrid.Items[i].FindControl("rb_1");
  197. RadioButton rb2 = ( RadioButton )MyDataGrid.Items[i].FindControl("rb_2");
  198. if(rb0.Checked)
  199. bb = "0";
  200. if(rb1.Checked)
  201. bb = "1";
  202. if(rb2.Checked)
  203. bb = "2";
  204. SqlCommand MyCommand2= new SqlCommand("UpdateScheduleResult", MyConnection);
  205. MyCommand2.CommandType = CommandType.StoredProcedure;
  206. MyCommand2.Parameters.Add(new SqlParameter("@ScheduleID", SqlDbType.Int, 4));
  207. MyCommand2.Parameters["@ScheduleID"].Value = Int32.Parse(MyDataGrid.Items[i].Cells[5].Text.ToString().Trim());
  208. MyCommand2.Parameters.Add(new SqlParameter("@Result", SqlDbType.NVarChar,10));
  209. MyCommand2.Parameters["@Result"].Value = bb;
  210. if(MyConnection.State.ToString()=="Closed")
  211. MyConnection.Open(); 
  212. MyCommand2.ExecuteNonQuery();
  213. MyConnection.Close();
  214. }
  215. }
  216. #region Web 窗体设计器生成的代码
  217. override protected void OnInit(EventArgs e)
  218. {
  219. //
  220. // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
  221. //
  222. InitializeComponent();
  223. base.OnInit(e);
  224. }
  225. /// <summary>
  226. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  227. /// 此方法的内容。
  228. /// </summary>
  229. private void InitializeComponent()
  230. {    
  231. this.Button1.Click += new System.EventHandler(this.Button1_Click);
  232. this.Load += new System.EventHandler(this.Page_Load);
  233. }
  234. #endregion
  235. }
  236. }