using System; using System.Data; using System.Web.UI; using System.Web.UI.WebControls; using DeiNiu.wms.Logical; using DeiNiu.Utils; using DeiNiu.wms.Data.Model; public partial class DeptMain : PageBase { private LDepartment _logic; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { _logic = new LDepartment(); Databound(); } SessionSeting(); } /***************************************** private methods ******************************************/ /// /// bound the query list. /// private void Databound() { //绑定部门列表 drplstDept.DataSource = _logic.GetAllActiveData(); drplstDept.DataTextField = "dep_name"; drplstDept.DataValueField = "ID"; drplstDept.DataBind(); drplstDept.Items.Insert(0, (new ListItem("WMS", "0"))); drplstDept.SelectedItem.Selected = false; drplstDept.Items.FindByText("WMS").Selected = true; //绑定部门人员列表 DropDownList1.DataSource = _logic.GetEmployees(); DropDownList1.DataTextField = "em_name"; DropDownList1.DataValueField = "ID"; DropDownList1.DataBind(); DropDownList1.Items.Insert(0,(new ListItem("请选择...","0"))); DropDownList1.SelectedItem.Selected = false; DropDownList1.Items.FindByText("请选择...").Selected = true; //装载选定部门节点的部门数据 dlstDeptType.Items.Clear(); dlstDeptType.Items.Add(new ListItem("普通", "0")); dlstDeptType.Items.Add(new ListItem("仓管", "1")); dlstDeptType.Items.Add(new ListItem("仓库", "2")); dlstDeptType.Items.Add(new ListItem("三方", "3")); DataView dv = _logic.GetAllActiveData().DefaultView; string selectedValue = TreeDept.SelectedValue; TreeDept.Nodes.Clear(); TreeDept.Nodes.Add(new TreeNode("WMS", "0")); TreeDept.Nodes[0].Expanded = true; BindTree("0", TreeDept.Nodes[0], dv); // TreeDept.SelectedNode.ChildNodes.Clear(); // BindTree(TreeDept.SelectedValue, TreeDept.SelectedNode, dv); // TreeDept.Nodes.AddAt(0, new TreeNode("WMS", "0")); if (selectedValue == "0") TreeDept.Nodes[0].Selected = true; else { setTreeDeptSelected(selectedValue, TreeDept.Nodes[0]); } dv.RowFilter = "dep_mastdept = '" + selectedValue + "'"; bindGridview(dv); UpdateSession(); // btnSubmit.Enabled = false; // ClearDetail(); drplstDept.Items.Clear(); initializeDrlstDept(TreeDept.Nodes, drplstDept ,""); } void bindGridview(DataView dv ) { //绑定树列表里选中的部门下的所有部门数据 foreach (DataRowView drv in dv) { foreach (ListItem li in dlstDeptType.Items) { if (drv["dep_type"].ToString().Equals(li.Value)) { drv.Row["typeName"] = li.Text; } } } GridView1.DataSource = dv; GridView1.DataBind(); } void initializeDrlstDept(TreeNodeCollection nds, DropDownList drplist, string emptyString) { foreach (TreeNode nd in nds) { ListItem li = new ListItem(emptyString + nd.Text,nd.Value); drplist.Items.Add(li); string NextemptyString = emptyString+ "----"; foreach (TreeNode nd1 in nd.ChildNodes) { li = new ListItem(NextemptyString + nd1.Text, nd1.Value); drplist.Items.Add(li); if (nd1.ChildNodes.Count > 0) { NextemptyString +="----"; initializeDrlstDept(nd1.ChildNodes, drplist, NextemptyString); } } } } void setTreeDeptSelected(string toFind,TreeNode nd) { foreach (TreeNode cnd in nd.ChildNodes) { if (cnd.Value == toFind) { cnd.Selected = true; break; } else { setTreeDeptSelected(toFind,cnd); } } } private void SessionSeting() { if (IsPostBack) { _logic = (LDepartment)Session[appScope.PagelevelObj]; } } private void UpdateSession() { Session[appScope.PagelevelObj] = _logic; } /// /// set data from shift object to page /// private void DetailDataBind() { DataDetail.Visible = true; txtDepName.Text = _logic.GetDepartment.dep_name ; txtDepcode.Text = _logic.GetDepartment.dep_code; txtDepDesc.Text = _logic.GetDepartment.dep_desc; txtSvrAddress.Text = _logic.GetDepartment.svrAdress; // txtDepType.Text = _logic.GetDepartment.dep_type+""; DropDownList1.SelectedItem.Selected = false; if(DropDownList1.Items.FindByValue(_logic.GetDepartment.dep_manager.ToString())!=null) { DropDownList1.Items.FindByValue(_logic.GetDepartment.dep_manager.ToString()).Selected = true; } drplstDept.SelectedItem.Selected = false; if (drplstDept.Items.FindByValue(_logic.GetDepartment.dep_mastdept.ToString()) != null) { drplstDept.Items.FindByValue(_logic.GetDepartment.dep_mastdept.ToString()).Selected = true; } dlstDeptType.SelectedItem.Selected = false; if (dlstDeptType.Items.FindByValue(_logic.GetDepartment.dep_type.ToString()) != null) { dlstDeptType.Items.FindByValue(_logic.GetDepartment.dep_type.ToString()).Selected = true; } // chkStatus.Checked = _logic.GetRole.dr; } /************************************** protected methods (event listeners) ********************************/ protected void btnAddnew_Click(object sender, EventArgs e) { chgOperTxt(true); _logic.Initialize(); DetailDataBind(); GridView1.SelectedIndex = -1; Databound(); drplstDept.SelectedItem.Selected = false; if (drplstDept.Items.FindByValue(TreeDept.SelectedNode.Value) != null) { drplstDept.Items.FindByValue(TreeDept.SelectedNode.Value).Selected = true; } } 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) { SetDataBack(); //shifts id eq 0 means this is new one,to add; else an old one, to update if (_logic.GetDepartment.ID > 0) { _logic.GetDepartment.Update(); } else { _logic.GetDepartment.Add(); if (_logic.GetDepartment.warehouse == 0 && _logic.GetDepartment.dep_type==1) { _logic.GetDepartment.warehouse = _logic.GetDepartment.ID; _logic.GetDepartment.Update(); } } ClearDetail(); Databound(); } 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.GetRole.dr = false; _logic.GetRole.Update(); */ _logic.GetDepartment.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) { /* CheckBox chk; if (e.Row.RowType == DataControlRowType.DataRow) { chk = new CheckBox(); chk.Text = "激活"; chk.Enabled = false; chk.Checked = e.Row.Cells[3].Text.Trim().Equals("1"); e.Row.Cells[3].Controls.Add(chk); } */ } 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.GetDepartment.ID > 0 )) { // _logic.GetDepartment.lastmodified = DateTime.Now.ToString(); _logic.GetDepartment.dep_mastdept = Convert.ToInt32(TreeDept.SelectedValue); } // _logic.GetDepartment.dr = true; _logic.GetDepartment.dep_name = txtDepName.Text; _logic.GetDepartment.dep_desc = txtDepDesc.Text; _logic.GetDepartment.dep_code = txtDepcode.Text; _logic.GetDepartment.svrAdress = txtSvrAddress.Text; if (dlstDeptType.SelectedItem != null) _logic.GetDepartment.dep_type = Convert.ToInt16(dlstDeptType.SelectedValue); if (DropDownList1.SelectedItem != null ) _logic.GetDepartment.dep_manager = Convert.ToInt32(DropDownList1.SelectedValue); if (drplstDept.SelectedItem != null) _logic.GetDepartment.dep_mastdept = Convert.ToInt32(drplstDept.SelectedValue); if (_logic.GetDepartment.dep_type != (int)enumDepartmentType.仓库)//本部门不是仓库类型 { if (_logic.GetDepartment.dep_mastdept > 0) //继承上级部门的仓库属性 { Department dept = new Department(_logic.GetDepartment.dep_mastdept); if (dept.dep_type != 1) { _logic.GetDepartment.warehouse = dept.warehouse; } else { _logic.GetDepartment.warehouse = dept.ID; } } } else { _logic.GetDepartment.warehouse = _logic.GetDepartment.ID; } } private void chgOperTxt(bool addNew) { DataDetail.Visible = true; lbEdit.Text = addNew ? "增加新记录" : "修改现有记录"; btnSubmit.Enabled = true; } private void ClearDetail() { txtDepName.Text = ""; txtDepcode.Text = ""; txtDepDesc.Text = ""; //txtDepType.Text =""; 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)); } Databound(); DetailDataBind(); } 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) { GridView1.SelectedIndex = -1; DataView dv = new DataView(_logic.GetAllActiveData()); dv.RowFilter = "dep_mastdept = '" + TreeDept.SelectedValue + "'"; bindGridview(dv); ClearDetail(); } }