ManageOrganization.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. /// ManageSystem 的摘要说明。
  16. /// </summary>
  17. public class ManageSystem : 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 totalOrganization;
  23. protected System.Web.UI.WebControls.LinkButton AddOrganization;
  24. public string PID;
  25. private void Page_Load(object sender, System.EventArgs e)
  26. {
  27. AddOrganization.Attributes.Add("onclick","window.open('NewOrganization.aspx','_blank','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,revisable=no,left=100,top=0,width=500,height=150');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("OrganizationSelect",MyConnection);
  45. MyCommand1.SelectCommand.CommandType = CommandType.StoredProcedure;
  46. DataSet ds = new DataSet();
  47. MyCommand1.Fill(ds,"Organization");
  48. MyConnection.Close();
  49. DataView dv = ds.Tables[0].DefaultView;
  50. totalOrganization=ds.Tables[0].Rows.Count;
  51. if (Session["tableAllOrganization"] == null)
  52. Session["tableAllOrganization"] = ds.Tables[0];
  53. if (Session["sorterAllOrganization"] == null)
  54. {
  55. Session["sorterAllOrganization"] ="OrganizationID";
  56. Session["sortAllOrganization"]=" ASC";
  57. }
  58. dv.Sort = (String) Session["sorterAllOrganization"]+(String) Session["sortAllOrganization"];
  59. ShowStats();
  60. return dv;
  61. }
  62. public void MyDataGrid_PageIndexChanged(Object sender, DataGridPageChangedEventArgs e) 
  63. {
  64. DataGrid gridThatCausedEvent = (DataGrid) sender;
  65. gridThatCausedEvent.CurrentPageIndex = e.NewPageIndex;
  66. gridThatCausedEvent.DataSource = CreateDataSource();
  67. gridThatCausedEvent.DataBind();
  68. }
  69. public void MyDataGrid_Sort(Object sender, DataGridSortCommandEventArgs e) 
  70. {
  71. Session["sorterAllOrganization"] = (string)e.SortExpression;
  72. Session["sortAllOrganization"]=(Session["sortAllOrganization"].ToString()==" DESC")?
  73. " ASC":" DESC";
  74. MyDataGrid.DataSource = CreateDataSource();
  75. MyDataGrid.DataBind();
  76. foreach (DataGridItem item in MyDataGrid.Controls[0].Controls)
  77. {
  78. if (item.ItemType == ListItemType.Header)
  79. {
  80. Label lb =(Label)item.FindControl((string)Session["sorterAllOrganization"]);
  81. lb.Text = (Session["sortAllOrganization"].ToString()==" ASC")?
  82. "↓":"↑";
  83. }
  84. }
  85. }
  86. private void ShowStats() 
  87. {
  88. if (totalOrganization == 0) 
  89. {
  90. MyDataGrid.Visible = false;
  91. stats.Text = "未找到符合条件的记录!";
  92. }
  93. else 
  94. {
  95. MyDataGrid.Visible = true;
  96. int startOffset = (totalOrganization > 0) ? 
  97. (MyDataGrid.CurrentPageIndex*MyDataGrid.PageSize+1) : 0;
  98. int pageEndOffset = (MyDataGrid.CurrentPageIndex+1)*(MyDataGrid.PageSize);
  99. int endOffset = (pageEndOffset > totalOrganization) ? totalOrganization : pageEndOffset;
  100. string SortName;
  101. switch(Session["sorterAllOrganization"].ToString())
  102. {
  103. case "OrganizationName":
  104. SortName = "机构名称";
  105. break;
  106. case "SystemID":
  107. SortName="隶属";
  108. break;
  109. default:
  110. SortName="机构名称";
  111. break;
  112. }
  113. stats.Text = String.Format("<B>共</B>{2}<B>条记录中的</B>{0}-{1}<B>条记录  根据</B>{3}<B>排序</B>",
  114. startOffset,endOffset,totalOrganization,SortName);
  115. MyDataGrid.PagerStyle.Visible = (totalOrganization <= MyDataGrid.PageSize) ? false : true;
  116. }
  117. }
  118. public void MyDataGrid_ItemCreated(Object sender, DataGridItemEventArgs e) 
  119. {
  120. if((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
  121. {
  122. }
  123. if((e.Item.ItemType == ListItemType.Header))
  124. {
  125. for(int i = 0; i<2; i++)
  126. {
  127. Label lb = new Label();
  128. if(i==0)
  129. lb.ID = "OrganizationName";
  130. if(i==1)
  131. lb.ID = "SystemID";
  132. lb.Text = "↓";
  133. e.Item.Cells[i].Controls.Add(lb);
  134. }
  135. }         
  136. }
  137. public void MyDataGrid_ItemDataBound(Object sender, DataGridItemEventArgs e) 
  138. {
  139. if((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
  140. {
  141. string OrganizationID = DataBinder.Eval(e.Item.DataItem, "OrganizationID").ToString();
  142. string SID =e.Item.Cells[1].Text.Trim().Replace("(","").Replace(")","");
  143. string [] str = SID.Split(new char[] {','});
  144. string SName="";
  145. for(int i=0; i<str.Length; i++)
  146. {
  147. if(str[i]!="")
  148. {
  149.                         SqlCommand MyCommand2 = new SqlCommand("SelectSystemName",MyConnection);
  150. MyCommand2.CommandType = CommandType.StoredProcedure;
  151. MyCommand2.Parameters.Add(new SqlParameter("@SystemID", SqlDbType.Int, 4));
  152. MyCommand2.Parameters["@SystemID"].Value = str[i];
  153. if(MyConnection.State.ToString()=="Closed")
  154. MyConnection.Open(); 
  155. SqlDataReader myReader2 =  MyCommand2.ExecuteReader();
  156. while(myReader2.Read())
  157. {
  158. if(myReader2["SystemName"]!=null)
  159. SName += ","+myReader2["SystemName"].ToString();
  160. }
  161. myReader2.Close();
  162.     MyConnection.Close();
  163. }
  164. }
  165. e.Item.Cells[1].ToolTip = SName.Substring(1);
  166. if(SName.Length>11)
  167. SName = SName.Substring(1,10)+"......";
  168. else
  169. SName = SName.Substring(1);
  170. e.Item.Cells[1].Text = SName;
  171.      LinkButton myDeleteButton1;
  172. LinkButton myDeleteButton2;
  173. myDeleteButton1 = (LinkButton) e.Item.Cells[2].Controls[0];
  174. if(e.Item.Cells[0].Text.Trim()!="公司领导")
  175.                 {
  176. myDeleteButton1.Attributes.Add("onclick", @"if(confirm('你确认要修改这条记录吗?')) window.open('EditOrganization.aspx?OrganizationID="+OrganizationID+"','_blank','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,revisable=no,left=100,top=0,width=500,height=130');return false;");
  177. }
  178.                 else
  179. myDeleteButton1.Attributes.Add("onclick", @"alert('你不能修改这个设置!')");
  180. myDeleteButton2 = (LinkButton) e.Item.Cells[3].Controls[0];
  181. myDeleteButton2.Attributes.Add("onclick", @"return confirm('你确认要删除这条记录吗?');");
  182. }
  183. }
  184. public void MyDataGrid_Delete(Object sender, DataGridCommandEventArgs E) 
  185. {
  186. SqlCommand MyCommand = new SqlCommand("DeleteOrganization",MyConnection);
  187. MyCommand.CommandType = CommandType.StoredProcedure;
  188. MyCommand.Parameters.Add(new SqlParameter("@OrganizationID", SqlDbType.Int, 4));
  189. MyCommand.Parameters["@OrganizationID"].Value = MyDataGrid.DataKeys[(int)E.Item.ItemIndex];
  190. if(MyConnection.State.ToString()=="Closed")
  191. MyConnection.Open(); 
  192. try
  193. {
  194. MyCommand.ExecuteNonQuery();
  195. }
  196. catch (SqlException)
  197. {
  198. RegisterStartupScript("alert","<script>alert('出现错误:未能删除记录!')</" + "script>");
  199. }
  200. MyConnection.Close();
  201. if ((MyDataGrid.CurrentPageIndex!=0)&&((int)E.Item.ItemIndex==0))
  202. {
  203. if (MyDataGrid.Items.Count==1)
  204. MyDataGrid.CurrentPageIndex-=1;
  205. }
  206. MyDataGrid.DataSource = CreateDataSource();
  207. MyDataGrid.DataBind();
  208. Response.Write("<script>opener.location.href=opener.location.href;opener=null;window.close();</"+"script>");
  209. }
  210. #region Web 窗体设计器生成的代码
  211. override protected void OnInit(EventArgs e)
  212. {
  213. //
  214. // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
  215. //
  216. InitializeComponent();
  217. base.OnInit(e);
  218. }
  219. /// <summary>
  220. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  221. /// 此方法的内容。
  222. /// </summary>
  223. private void InitializeComponent()
  224. {    
  225. this.Load += new System.EventHandler(this.Page_Load);
  226. }
  227. #endregion
  228. }
  229. }