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

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. /// ManagePerson 的摘要说明。
  16. /// </summary>
  17. public class ManagePerson : System.Web.UI.Page
  18. {
  19. protected System.Web.UI.WebControls.Label stats;
  20. protected System.Web.UI.WebControls.DataGrid MyDataGrid;
  21. protected System.Data.SqlClient.SqlConnection MyConnection;
  22. private int totalPerson;
  23. protected System.Web.UI.WebControls.LinkButton AddUser;
  24. public string PID;
  25. private void Page_Load(object sender, System.EventArgs e)
  26. {
  27. AddUser.Attributes.Add("onclick","window.open('NewUser.aspx','_blank','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,revisable=no,left=100,top=0,width=500,height=200');return false;");
  28. CheckUser CHU = new CheckUser();
  29. CHU.UserName = User.Identity.Name;
  30. PID = CHU.UserID.ToString();
  31. if(CHU.Is_SystemManager() == false)
  32. Response.Write("<script>alert('对不起,你没有查看此页面的权限!');history.back(2)</" + "script>");
  33. MyConnection=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
  34. if(!IsPostBack)
  35. {
  36. MyDataGrid.DataSource = CreateDataSource();
  37. MyDataGrid.DataBind();
  38. }
  39. // 在此处放置用户代码以初始化页面
  40. }
  41. private ICollection CreateDataSource() 
  42. {
  43. MyConnection=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
  44. SqlDataAdapter MyCommand1 = new SqlDataAdapter("PersonIDTree0",MyConnection);
  45. MyCommand1.SelectCommand.CommandType = CommandType.StoredProcedure;
  46. MyCommand1.SelectCommand.Parameters.Add(new SqlParameter("@JobID", SqlDbType.NVarChar, 50));
  47. MyCommand1.SelectCommand.Parameters["@JobID"].Value = "%";
  48. DataSet ds = new DataSet();
  49. MyCommand1.Fill(ds,"Person");
  50. MyConnection.Close();
  51. DataView dv = ds.Tables[0].DefaultView;
  52. totalPerson=ds.Tables[0].Rows.Count;
  53. if (Session["tableAllPerson"] == null)
  54. Session["tableAllPerson"] = ds.Tables[0];
  55. if (Session["sorterAllPerson"] == null)
  56. {
  57. Session["sorterAllPerson"] ="JobID";
  58. Session["sortAllPerson"]=" DESC";
  59. }
  60. dv.Sort = (String) Session["sorterAllPerson"]+(String) Session["sortAllPerson"];
  61. ShowStats();
  62. return dv;
  63. }
  64. public void MyDataGrid_PageIndexChanged(Object sender, DataGridPageChangedEventArgs e) 
  65. {
  66. DataGrid gridThatCausedEvent = (DataGrid) sender;
  67. gridThatCausedEvent.CurrentPageIndex = e.NewPageIndex;
  68. gridThatCausedEvent.DataSource = CreateDataSource();
  69. gridThatCausedEvent.DataBind();
  70. }
  71. public void MyDataGrid_Sort(Object sender, DataGridSortCommandEventArgs e) 
  72. {
  73. Session["sorterAllPerson"] = (string)e.SortExpression;
  74. Session["sortAllPerson"]=(Session["sortAllPerson"].ToString()==" ASC")?
  75. " DESC":" ASC";
  76. MyDataGrid.DataSource = CreateDataSource();
  77. MyDataGrid.DataBind();
  78. foreach (DataGridItem item in MyDataGrid.Controls[0].Controls)
  79. {
  80. if (item.ItemType == ListItemType.Header)
  81. {
  82. Label lb =(Label)item.FindControl((string)Session["sorterAllPerson"]);
  83. lb.Text = (Session["sortAllPerson"].ToString()==" DESC")?
  84. "↓":"↑";
  85. }
  86. }
  87. }
  88. private void ShowStats() 
  89. {
  90. if (totalPerson == 0) 
  91. {
  92. MyDataGrid.Visible = false;
  93. stats.Text = "未找到符合条件的记录!";
  94. }
  95. else 
  96. {
  97. MyDataGrid.Visible = true;
  98. int startOffset = (totalPerson > 0) ? 
  99. (MyDataGrid.CurrentPageIndex*MyDataGrid.PageSize+1) : 0;
  100. int pageEndOffset = (MyDataGrid.CurrentPageIndex+1)*(MyDataGrid.PageSize);
  101. int endOffset = (pageEndOffset > totalPerson) ? totalPerson : pageEndOffset;
  102. string SortName;
  103. switch(Session["sorterAllPerson"].ToString())
  104. {
  105. case "Name":
  106. SortName = "姓名";
  107. break;
  108. case "Organization":
  109. SortName="隶属";
  110. break;
  111. case "JobID":
  112. SortName = "角色";
  113. break;
  114. default:
  115. SortName="姓名";
  116. break;
  117. }
  118. stats.Text = String.Format("<B>共</B>{2}<B>条记录中的</B>{0}-{1}<B>条记录  根据</B>{3}<B>排序</B>",
  119. startOffset,endOffset,totalPerson,SortName);
  120. MyDataGrid.PagerStyle.Visible = (totalPerson <= MyDataGrid.PageSize) ? false : true;
  121. }
  122. }
  123. public void MyDataGrid_ItemCreated(Object sender, DataGridItemEventArgs e) 
  124. {
  125. if((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
  126. {
  127. }
  128. if((e.Item.ItemType == ListItemType.Header))
  129. {
  130. for(int i = 0; i<3; i++)
  131. {
  132. Label lb = new Label();
  133. if(i==0)
  134. lb.ID = "Name";
  135. if(i==1)
  136. lb.ID = "OrganizationID";
  137. if(i==2)
  138. lb.ID = "JobID";
  139. lb.Text = "↓";
  140. e.Item.Cells[i].Controls.Add(lb);
  141. }
  142. }         
  143. }
  144. public void MyDataGrid_ItemDataBound(Object sender, DataGridItemEventArgs e) 
  145. {
  146. if((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
  147. {
  148. string PersonID = DataBinder.Eval(e.Item.DataItem, "PersonID").ToString();
  149. string OID =e.Item.Cells[1].Text.Trim().Replace("(","").Replace(")","");
  150. string [] str = OID.Split(new char[] {','});
  151. string OName="";
  152. string SID="";
  153. string SName="";
  154. string SN="";
  155. for(int i=0; i<str.Length; i++)
  156. {
  157. SqlCommand MyCommand0 = new SqlCommand("OrganizationName",MyConnection);
  158. MyCommand0.CommandType = CommandType.StoredProcedure;
  159. MyCommand0.Parameters.Add(new SqlParameter("@OrganizationID", SqlDbType.Int, 4));
  160. MyCommand0.Parameters["@OrganizationID"].Value = str[i];
  161. if(MyConnection.State.ToString()=="Closed")
  162. MyConnection.Open(); 
  163. SqlDataReader myReader0 =  MyCommand0.ExecuteReader();
  164. while(myReader0.Read())
  165. {
  166. SID = myReader0["SystemID"].ToString();
  167. OName = ","+myReader0["OrganizationName"].ToString();
  168. }
  169. myReader0.Close();
  170. string [] str2 = SID.Split(new char[] {','});
  171. for(int j=0; j<str2.Length; j++)
  172. {
  173. SqlCommand MyCommand2 = new SqlCommand("SelectSystemName",MyConnection);
  174. MyCommand2.CommandType = CommandType.StoredProcedure;
  175. MyCommand2.Parameters.Add(new SqlParameter("@SystemID", SqlDbType.Int, 4));
  176. MyCommand2.Parameters["@SystemID"].Value = str2[j];
  177. if(MyConnection.State.ToString()=="Closed")
  178. MyConnection.Open(); 
  179. SqlDataReader myReader2 =  MyCommand2.ExecuteReader();
  180. while(myReader2.Read())
  181. {
  182. if(str2.Length>1)
  183. SName += ","+myReader2["SystemName"].ToString();
  184. else
  185. SName = ","+myReader2["SystemName"].ToString();
  186. }
  187. myReader2.Close();
  188. }
  189.                     SN +=",("+SName.Substring(1)+")"+OName.Substring(1);
  190. MyConnection.Close(); 
  191. }
  192. e.Item.Cells[1].ToolTip = SN.Substring(1);
  193. if(SN.Length>11)
  194. SN = SN.Substring(1,10)+"......";
  195. else
  196. SN = SN.Substring(1);
  197. e.Item.Cells[1].Text = SN;
  198. string JID =e.Item.Cells[2].Text.Trim().Replace("(","").Replace(")","");
  199. string [] str1 = JID.Split(new char[] {','});
  200. string JName="";
  201. for(int i=0; i<str1.Length; i++)
  202. {
  203. SqlCommand MyCommand1 = new SqlCommand("JobName",MyConnection);
  204. MyCommand1.CommandType = CommandType.StoredProcedure;
  205. MyCommand1.Parameters.Add(new SqlParameter("@JobID", SqlDbType.Int, 4));
  206. MyCommand1.Parameters["@JobID"].Value = str1[i];
  207. if(MyConnection.State.ToString()=="Closed")
  208. MyConnection.Open(); 
  209. SqlDataReader myReader1 =  MyCommand1.ExecuteReader();
  210. while(myReader1.Read())
  211. JName += ","+myReader1["JobName"].ToString();
  212. myReader1.Close();
  213. MyConnection.Close(); 
  214. }
  215. e.Item.Cells[2].ToolTip = JName.Substring(1);
  216. if(JName.Substring(1).Length>6)
  217. JName = JName.Substring(1,6)+"......";
  218. else
  219. JName = JName.Substring(1);
  220. e.Item.Cells[2].Text = JName.Substring(0);
  221. LinkButton myDeleteButton1;
  222. LinkButton myDeleteButton2;
  223. myDeleteButton1 = (LinkButton) e.Item.Cells[3].Controls[0];
  224. myDeleteButton1.Attributes.Add("onclick", @"if(confirm('你确认要修改这条记录吗?')) window.open('EditPerson.aspx?PersonID="+PersonID+"','_blank','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,revisable=no,left=100,top=0,width=600,height=200');return false;");
  225. myDeleteButton2 = (LinkButton) e.Item.Cells[4].Controls[0];
  226. myDeleteButton2.Attributes.Add("onclick", @"return confirm('你确认要删除这条记录吗?');");
  227. }
  228. }
  229. public void MyDataGrid_Delete(Object sender, DataGridCommandEventArgs E) 
  230. {
  231. SqlCommand MyCommand = new SqlCommand("DeletePerson",MyConnection);
  232. MyCommand.CommandType = CommandType.StoredProcedure;
  233. MyCommand.Parameters.Add(new SqlParameter("@PersonID", SqlDbType.Int, 4));
  234. MyCommand.Parameters["@PersonID"].Value = MyDataGrid.DataKeys[(int)E.Item.ItemIndex];
  235. if(MyConnection.State.ToString()=="Closed")
  236. MyConnection.Open(); 
  237. try
  238. {
  239. MyCommand.ExecuteNonQuery();
  240. }
  241. catch (SqlException)
  242. {
  243. RegisterStartupScript("alert","<script>alert('出现错误:未能删除记录!')</" + "script>");
  244. }
  245. MyConnection.Close();
  246. if ((MyDataGrid.CurrentPageIndex!=0)&&((int)E.Item.ItemIndex==0))
  247. {
  248. if (MyDataGrid.Items.Count==1)
  249. MyDataGrid.CurrentPageIndex-=1;
  250. }
  251. MyDataGrid.DataSource = CreateDataSource();
  252. MyDataGrid.DataBind();
  253. Response.Write("<script>opener.location.href=opener.location.href;opener=null;window.close();</"+"script>");
  254. }
  255. #region Web 窗体设计器生成的代码
  256. override protected void OnInit(EventArgs e)
  257. {
  258. //
  259. // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
  260. //
  261. InitializeComponent();
  262. base.OnInit(e);
  263. }
  264. /// <summary>
  265. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  266. /// 此方法的内容。
  267. /// </summary>
  268. private void InitializeComponent()
  269. {    
  270. this.Load += new System.EventHandler(this.Page_Load);
  271. }
  272. #endregion
  273. }
  274. }