using System; using System.Data; using System.IO; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using view.App_Code; using DeiNiu.wms.Logical; using DeiNiu.Utils; public partial class EmployeeMain : PageBase { private LEmployee _logic; protected void Page_Init() { PostBackTrigger trigger = new PostBackTrigger(); trigger.ControlID = Button1.UniqueID; // (Button)pnGridViewProcess.FindControl("btnExcel")).UniqueID.ToString(); // (UpdatePanel)(Page.Controls[0].FindControl("UpdatePanel1")).Triggers.Add(trigger); ((UpdatePanel)Master.FindControl("UpdatePanel1")).Triggers.Add(trigger); } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { _logic = new LEmployee(); bindDeptTree(); Databound(); } SessionSeting(); } /***************************************** private methods ******************************************/ void bindDeptTree() { DataView dvDept = new DataView(_logic.GetDepartments()); //装载选定部门节点的部门数据 TreeDept.SelectedNode.ChildNodes.Clear(); BindTree(TreeDept.SelectedNode.Value, TreeDept.SelectedNode, dvDept); } /// /// bound the query list. /// private void Databound() { //绑定部门树选中的部门下的所有员工数据 bindGrid(); UpdateSession(); // btnSubmit.Enabled = false; ClearDetail(); } private void SessionSeting() { if (IsPostBack) { _logic = (LEmployee)Session[appScope.PagelevelObj]; } } private void UpdateSession() { Session[appScope.PagelevelObj] = _logic; } /// /// set data from shift object to page /// private void DetailDataBind() { DataDetail.Visible = true; txtAccount.ReadOnly = true; txtName.Text = _logic.GetEmployee.em_name; txtBirthday.Text = _logic.GetEmployee.em_birthday.ToString(); txtCell.Text = _logic.GetEmployee.em_cellnum; txtID.Text = _logic.GetEmployee.em_idnum; txtMail.Text = _logic.GetEmployee.em_email; //txtPasswd.Text = _logic.GetEmployee.em_passwd; txtAccount.Text = _logic.GetEmployee.em_account; lbSelectedDept.Text = TreeDept.SelectedNode.Text; drplstSex.Items.FindByValue("1").Selected = true; if (_logic.GetEmployee.em_sex) { drplstSex.Items.FindByValue("0").Selected = false; drplstSex.Items.FindByValue("1").Selected = true; } else { drplstSex.Items.FindByValue("1").Selected = false; drplstSex.Items.FindByValue("0").Selected = true; } if (drplstEducation.Items.FindByValue(_logic.GetEmployee.em_education) != null) // drplstEducation.Items.FindByValue(_logic.GetEmployee.em_education).Selected=true; //ListItemColleciton can only select one item, if another has been selected, this will case error. SetDropDownlistSelection(drplstEducation, _logic.GetEmployee.em_education); bindGV(); if (drlstPlitics.Items.FindByValue(_logic.GetEmployee.em_type) != null) //drlstPlitics.Items.FindByValue(_logic.GetEmployee.em_politic).Selected = true; SetDropDownlistSelection(drlstPlitics, _logic.GetEmployee.em_type); // chkStatus.Checked = _logic.GetRole.dr; } void bindGV() { GvDept.DataSource = _logic.GetDepartments(_logic.GetEmployee.ID); GvDept.DataBind(); } /************************************** protected methods (event listeners) ********************************/ protected void btnAddnew_Click(object sender, EventArgs e) { if(TreeDept.SelectedValue == "0" ) { ScriptManager.RegisterStartupScript(btnSubmit, typeof(UpdatePanel), "alert", "alert('请选择用户所属部门。');", true); return; } txtAccount.ReadOnly = false; chgOperTxt(true); _logic.Initialize(); ClearDetail(); GridView1.SelectedIndex = -1; Databound(); txtTitle.Enabled = true; lbTitle.Visible = true; txtTitle.Visible = true; lbSelectedDept.Text = TreeDept.SelectedNode.Text; // DetailDataBind(); DataDetail.Visible = true; bindGV(); } protected void DetailsView1_PageIndexChanging(object sender, DetailsViewPageEventArgs e) { } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { chgOperTxt(false); if (GridView1.DataKeys != null) { string id = GridView1.DataKeys[e.NewEditIndex].Value.ToString(); _logic.Initialize(int.Parse(id)); } Databound(); DetailDataBind(); } protected void btnSubmit_Click(object sender, EventArgs e) { bool userNotExist = true; SetDataBack(); if (txtName.Text.Trim().Length == 0) { txtName.Focus(); bindGrid(); // ScriptManager.RegisterStartupScript(btnSubmit, typeof(UpdatePanel), "alert", // "alert('请输入用户姓名。');", true); return; } if (txtAccount.Text.Trim().Length == 0) { txtAccount.Focus(); bindGrid(); // ScriptManager.RegisterStartupScript(btnSubmit, typeof (UpdatePanel), "alert", // "alert('请输入用户账号。');", true); return; } /* if(lem.GetEmployee.em_account !="mysec" ) if (_logic != null) if (_logic.GetEmployee != null) if(_logic.GetEmployee.QueryActived().Tables[0].Rows.Count>20) return; */ if (_logic != null) if (_logic.GetEmployee != null) if (_logic.GetEmployee.ID > 0) _logic.GetEmployee.Update(); else { userNotExist = _logic.AddEmployee(); } if (!userNotExist) { ScriptManager.RegisterStartupScript(btnSubmit, typeof (UpdatePanel), "alert", "alert('用户名 " + txtAccount.Text + " 已经存在,请重新输入,操作失败。');", true); bindGrid(); txtAccount.Text =""; txtAccount.Focus(); } else { ClearDetail(); Databound(); DataDetail.Visible = false; } } void bindGrid() { _logic.GetEmployee.em_dept = TreeDept.SelectedValue; DataView dv = TreeDept.SelectedValue != "0" ? new DataView(_logic.GetActiveEmpByDept(Convert.ToInt32(TreeDept.SelectedValue))) : new DataView(_logic.GetActivedEmpDept()); dv.RowFilter = "em_name <>'Root'"; GridView1.DataSource = dv; GridView1.DataBind(); } protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { if (GridView1 != null) { if (GridView1.DataKeys != null) { string id = GridView1.DataKeys[e.RowIndex].Value.ToString(); _logic.Initialize(int.Parse(id)); } } _logic.GetEmployee.Delete(); ClearDetail(); Databound(); } protected void GridView1_PageIndexChanged(object sender, EventArgs e) { } protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; Databound(); //GridView1.DataSource = shiftLgc.getAllShifts().Tables[0]; // GridView1.DataBind(); } protected void GridView1_DataBinding(object sender, EventArgs e) { } protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { Label lb; switch (e.Row.RowType) { case DataControlRowType.DataRow: lb = new Label(); lb.Text = e.Row.Cells[3].Text.Trim().Equals("True") ? "男" : "女"; e.Row.Cells[3].Controls.Add(lb); break; } } protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) { } //reset the page protected void btnCancel_Click(object sender, EventArgs e) { _logic.Initialize(); Page_Load(this, e); } /***************************************** internal methods ********************************************/ /// /// set data from page to shift object /// private void SetDataBack() { // _logic.GetRole.operater = Session["CurrentUserID"].ToString(); todo: write a public method to handle operater,createtime,lastmodfied ... log info. if ( _logic.GetEmployee.ID >0 ) { // _logic.GetEmployee.lastmodified = DateTime.Now.ToString(); if(txtPasswd.Text.Trim().Length>0) _logic.GetEmployee.em_passwd = Util.Encrypt(txtPasswd.Text.Trim()); } else { _logic.GetEmployee.em_passwd = Util.Encrypt(txtPasswd.Text.Trim()); } // _logic.GetEmployee.dr = true; _logic.GetEmployee.em_name = txtName.Text; _logic.GetEmployee.em_account = txtAccount.Text; _logic.GetEmployee.em_birthday = txtBirthday.Text; _logic.GetEmployee.em_cellnum = txtCell.Text; _logic.GetEmployee.em_education = drplstEducation.SelectedValue; _logic.GetEmployee.em_email = txtMail.Text; _logic.GetEmployee.em_idnum = txtID.Text; _logic.GetEmployee.em_type = drlstPlitics.SelectedValue; _logic.GetEmployee.em_sex = drplstSex.SelectedIndex == 0; _logic.GetEmployee.em_dept = TreeDept.SelectedValue; _logic.GetEmployee.em_jobcode = txtTitle.Text; } private void chgOperTxt(bool addNew) { DataDetail.Visible = true; lbEdit.Text = addNew ? "增加新记录" : "修改现有记录"; btnSubmit.Enabled = true; } private void ClearDetail() { lbEdit.Text = ""; txtName.Text = "" ; txtBirthday.Text = ""; txtCell.Text = ""; txtID.Text = ""; txtMail.Text =""; txtPasswd.Text =""; txtAccount.Text =""; txtTitle.Text = ""; lbSelectedDept.Text = TreeDept.SelectedNode.Text; txtPasswd.Text = ""; InitDropdownlist(); //装载选定部门节点的部门数据 // drlstPlitics.SelectedIndex = -1; DataDetail.Visible = false; } protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { chgOperTxt(false); if (GridView1.DataKeys != null) { string id = GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString(); _logic.Initialize(int.Parse(id)); } lbTitle.Visible = false; txtTitle.Visible = false; Databound(); DetailDataBind(); txtTitle.Enabled = false; } public void BindTree(string id, TreeNode pNode, DataView dv) { dv.RowFilter = "dep_mastdept = '" + id + "'"; foreach (DataRowView row in dv) { TreeNode node = new TreeNode(); node.Text = row["dep_name"].ToString(); node.Value = row["ID"].ToString(); if (pNode == null) //说明是根节点 { TreeDept.Nodes.Add(node); node.Expanded = true; } else { pNode.ChildNodes.Add(node); node.Expanded = true; } BindTree(node.Value, node, new DataView(dv.Table)); } } protected void TreeDept_SelectedNodeChanged(object sender, EventArgs e) { /* DataView dv = new DataView(_logic.GetAllActiveData().Tables[0]); if(TreeDept.SelectedValue !="0") dv.RowFilter = "em_dept = '" + TreeDept.SelectedValue + "'"; GridView1.DataSource = dv; GridView1.DataBind(); ClearDetail(); */ if (_logic != null) _logic.Initialize(); GridView1.SelectedIndex = -1; Databound(); } protected void drplstSex_SelectedIndexChanged(object sender, EventArgs e) { ListItem selectedItem = drplstSex.Items[1]; selectedItem.Selected = true; } protected void InitDropdownlist() { drplstSex.Items[ drplstSex.SelectedIndex].Selected = false; drplstSex.Items.FindByValue("1").Selected = true; drlstPlitics.Items[drlstPlitics.SelectedIndex].Selected = false; drlstPlitics.Items[0].Selected = true; } protected void SetDropDownlistSelection(DropDownList drdlst,string value) { drdlst.Items[drdlst.SelectedIndex].Selected = false; if (drdlst.Items.FindByValue(value)!=null) drdlst.Items.FindByValue(value).Selected = true; } //如果没有下面方法会报错类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内 public override void VerifyRenderingInServerForm(Control control) { } protected void Excel_Click(object sender, EventArgs e) { Master.ScriptMgr.RegisterPostBackControl(this.Button1); GridView1.AllowPaging = false; GridView1.Columns[11].Visible = false; Databound(); Export("application/ms-excel", "WMS系统用户列表.xls"); GridView1.AllowPaging = false; GridView1.Columns[11].Visible = true; Databound(); } private void Export(string FileType, string FileName) { Response.Charset = "GB2312"; Response.ContentEncoding = Encoding.UTF7; Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString()); Response.ContentType = FileType; EnableViewState = false; StringWriter tw = new StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(tw); GridView1.RenderControl(hw); Response.Write(tw.ToString()); Response.End(); } protected void GvDept_RowUpdating(object sender, GridViewUpdateEventArgs e) { if (GvDept.DataKeys != null) { string id = GvDept.DataKeys[e.RowIndex].Value.ToString(); _logic.GetDeptEmp.ID = Convert.ToInt32(id); _logic.GetDeptEmp.getModel(); _logic.GetDeptEmp.de_title = ((TextBox)GvDept.Rows[e.RowIndex].Cells[3].Controls[1]).Text; //_logic.GetTrainingDetail.operater = _logic.GetDeptEmp.Update(); } GvDept.EditIndex = -1; GvDept.SelectedIndex = e.RowIndex; bindGV(); } protected void GvDept_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GvDept.EditIndex = -1; GvDept.SelectedIndex = e.RowIndex; bindGV(); } protected void GvDept_RowEditing(object sender, GridViewEditEventArgs e) { GvDept.EditIndex = e.NewEditIndex; GvDept.SelectedIndex = e.NewEditIndex; bindGV(); } }