ModifyInfo1.aspx.cs
上传用户:xgw_05
上传日期:2009-12-11
资源大小:20208k
文件大小: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. using UDS.Components;
  13. namespace UDS.SubModule.Staff
  14. {
  15. /// <summary>
  16. /// ModifyInfo 的摘要说明。
  17. /// </summary>
  18. public class ModifyInfo : System.Web.UI.Page
  19. {
  20. protected System.Web.UI.WebControls.DataGrid StaffList;
  21. protected System.Web.UI.WebControls.TextBox txb_PageNo;
  22. protected System.Web.UI.WebControls.TextBox txb_ItemPerPage;
  23. protected System.Web.UI.WebControls.Label lbl_totalrecord;
  24. protected System.Web.UI.WebControls.ImageButton btn_first;
  25. protected System.Web.UI.WebControls.ImageButton btn_pre;
  26. protected System.Web.UI.WebControls.Label lbl_curpage;
  27. protected System.Web.UI.WebControls.Label lbl_totalpage;
  28. protected System.Web.UI.WebControls.ImageButton btn_next;
  29. protected System.Web.UI.WebControls.ImageButton btn_last;
  30. protected System.Web.UI.HtmlControls.HtmlInputButton btn_Go;
  31. protected static bool displaytype; 
  32. private void Page_Load(object sender, System.EventArgs e)
  33. {
  34. // 在此处放置用户代码以初始化页面
  35. if(!Page.IsPostBack)
  36. {
  37. displaytype = (Request.Params["displayType"]==null)?false:(Request.Params["displayType"].ToString()=="0")?false:true;
  38. BindGrid();
  39. }
  40. }
  41. /// <summary>
  42. /// 数据绑定
  43. /// </summary>
  44. private void BindGrid()
  45. {
  46. SqlDataReader dr; //存放人物的数据
  47. Database db = new Database();
  48. SqlParameter[] prams = {
  49.     db.MakeInParam("@StaffType",SqlDbType.Bit,1,displaytype)
  50. };
  51. db.RunProc("sp_GetAllStaff",prams,out dr);
  52. DataTable dt =Tools.ConvertDataReaderToDataTable(dr);
  53. //在DataTable的末尾加上空行,使得DataGrid固定行数
  54. int blankrows = StaffList.PageSize - (dt.Rows.Count % StaffList.PageSize);
  55. for (int i = 0; i < blankrows; i++)
  56. {
  57. dt.Rows.Add(dt.NewRow());
  58. }
  59. StaffList.DataSource = dt.DefaultView;
  60. StaffList.DataBind();
  61. //对于空纪录不显示checkbox
  62. for(int i=0;i<StaffList.Items.Count;i++)
  63. {
  64. if(StaffList.Items[i].Cells[1].Text=="&nbsp;")
  65. {
  66. StaffList.Items[i].FindControl("cb_StaffID").Visible = false;
  67. }
  68. }
  69. lbl_totalrecord.Text =StaffList.PageCount.ToString();
  70. lbl_curpage.Text = txb_PageNo.Text = (StaffList.CurrentPageIndex + 1).ToString();
  71. txb_ItemPerPage.Text = StaffList.PageSize.ToString();
  72. lbl_totalpage.Text = StaffList.PageCount.ToString();
  73. }
  74. private void PagerButtonClick(object sender, System.Web.UI.ImageClickEventArgs e)
  75. {
  76. //获得LinkButton的参数值
  77. String arg = ((ImageButton)sender).CommandArgument;
  78.           
  79. switch(arg)
  80. {
  81. case ("next"):
  82. if (StaffList.CurrentPageIndex < (StaffList.PageCount - 1))
  83. StaffList.CurrentPageIndex ++;
  84. break;
  85. case ("pre"):
  86. if (StaffList.CurrentPageIndex > 0)
  87. StaffList.CurrentPageIndex --;
  88. break;
  89. case ("first"):
  90. StaffList.CurrentPageIndex=0;
  91. break;
  92. case ("last"):
  93. StaffList.CurrentPageIndex = (StaffList.PageCount - 1);
  94. break;
  95. default:
  96. //本页值
  97. StaffList.CurrentPageIndex = Convert.ToInt32(arg);
  98. break;
  99. }
  100. BindGrid();
  101. }            
  102. private void btnGo_Click(object sender, System.EventArgs e)
  103. {
  104. //页面直接跳转的代码
  105. if(txb_PageNo.Text.Trim()!="")
  106. {
  107. int PageI=Int32.Parse(txb_PageNo.Text.Trim())-1;
  108. if (PageI >=0 && PageI < (StaffList.PageCount))
  109. StaffList.CurrentPageIndex = PageI ;
  110. BindGrid();
  111. }
  112. private void txb_ItemPerPage_TextChanged(object sender, System.EventArgs e)
  113. {
  114. if(txb_ItemPerPage.Text.Trim()!="")
  115. {
  116. int itemPage=Int32.Parse(txb_ItemPerPage.Text.Trim());
  117. if(itemPage>0)
  118. StaffList.PageSize =  Int32.Parse(txb_ItemPerPage.Text.Trim());
  119. }
  120. BindGrid();
  121. }
  122. private string GetSelectedItemID(string controlID)
  123. {
  124. String selectedID;
  125. selectedID = "";
  126. //遍历DataGrid获得checked的ID
  127. foreach (DataGridItem item in StaffList.Items)
  128. {
  129. if(((CheckBox)item.FindControl(controlID)).Checked)
  130. selectedID += item.Cells[1].Text.Trim()+",";
  131. }
  132. selectedID=selectedID.Substring(0,selectedID.Length-1);
  133. return selectedID;
  134. }
  135. #region Web Form Designer generated code
  136. override protected void OnInit(EventArgs e)
  137. {
  138. //
  139. // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  140. //
  141. InitializeComponent();
  142. base.OnInit(e);
  143. }
  144. /// <summary>
  145. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  146. /// 此方法的内容。
  147. /// </summary>
  148. private void InitializeComponent()
  149. {    
  150. this.StaffList.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.StaffList_EditCommand);
  151. this.StaffList.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.StaffList_UpdateCommand_1);
  152. this.txb_ItemPerPage.TextChanged += new System.EventHandler(this.txb_ItemPerPage_TextChanged);
  153. this.btn_first.Click += new System.Web.UI.ImageClickEventHandler(this.PagerButtonClick);
  154. this.btn_pre.Click += new System.Web.UI.ImageClickEventHandler(this.PagerButtonClick);
  155. this.btn_next.Click += new System.Web.UI.ImageClickEventHandler(this.PagerButtonClick);
  156. this.btn_last.Click += new System.Web.UI.ImageClickEventHandler(this.PagerButtonClick);
  157. this.btn_Go.ServerClick += new System.EventHandler(this.btnGo_Click);
  158. this.Load += new System.EventHandler(this.Page_Load);
  159. }
  160. #endregion
  161. private void cmdChangeDepartment_ServerClick(object sender, System.EventArgs e)
  162. {
  163. Response.Redirect("../Department/ChangeDepartment.aspx?BackFilePath="+Request.CurrentExecutionFilePath+"&StaffIDS="+GetSelectedItemID("cb_StaffID"));
  164. }
  165. private void cmdRestoreDocument_ServerClick(object sender, System.EventArgs e)
  166. {
  167. UDS.Components.Staff st = new UDS.Components.Staff();
  168. if(st.ReturnPosition(GetSelectedItemID("cb_StaffID"))==false)
  169. Server.Transfer("../Error.aspx");
  170. else
  171. Response.Redirect("Rehab.aspx");
  172. }
  173. private void StaffList_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  174. {
  175. StaffList.EditItemIndex = e.Item.ItemIndex;
  176. BindGrid();
  177. //造出当前行内的DropDownList
  178. DropDownList department;
  179. department = (DropDownList) StaffList.Items[StaffList.EditItemIndex].FindControl("department");
  180. Database db = new Database();
  181. SqlDataReader dr;
  182. try
  183. {
  184. db.RunProc("sp_GetAllDepartment",out dr);
  185. department.DataSource = dr;
  186. department.DataTextField = "Department_Name";
  187. department.DataValueField = "Department_ID";
  188. department.DataBind();
  189. foreach(ListItem lt in department.Items)
  190. {
  191. if(lt.Value==StaffList.Items[e.Item.ItemIndex].Cells[8].Text)
  192. lt.Selected = true;
  193. }
  194. }
  195. catch(Exception ex)
  196. {
  197. UDS.Components.Error.Log(ex.Message);
  198. Server.Transfer("../Error.aspx");
  199. }
  200. }
  201. private void StaffList_UpdateCommand_1(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  202. {
  203. Database db = new Database();
  204. SqlParameter[] prams = {
  205.    db.MakeInParam("@Staff_ID",SqlDbType.Int,4,Int32.Parse(e.Item.Cells[0].Text)),
  206.    db.MakeInParam("@RealName",SqlDbType.VarChar,50,((TextBox)e.Item.Cells[1].Controls[1]).Text),
  207.    db.MakeInParam("@Mobile",SqlDbType.VarChar,50,((TextBox)e.Item.Cells[2].Controls[1]).Text),
  208.    db.MakeInParam("@Sex",SqlDbType.Bit,1,Convert.ToBoolean(((DropDownList)e.Item.Cells[4].Controls[1]).SelectedItem.Value)),
  209.    db.MakeInParam("@Email",SqlDbType.VarChar,500,((TextBox)e.Item.Cells[5].Controls[1]).Text),
  210.    db.MakeInParam("@Department_ID",SqlDbType.Int,4,Int32.Parse(((DropDownList)e.Item.Cells[6].Controls[1]).SelectedItem.Value))
  211.    
  212.    };
  213. try
  214. {
  215. db.RunProc("sp_UpdateStaffInfo",prams);
  216. }
  217. catch(Exception ex)
  218. {
  219. UDS.Components.Error.Log(ex.Message);
  220. Server.Transfer("../Error.aspx");
  221. }
  222. }
  223. }
  224. }