309 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			309 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | ||
| using System.Collections;
 | ||
| using System.Data;
 | ||
| using System.Transactions;
 | ||
| using System.Web.UI;
 | ||
| using System.Web.UI.WebControls;
 | ||
| using DeiNiu.wms.Logical;
 | ||
| using DeiNiu.Utils;
 | ||
| using DeiNiu.wms.Data.Model;
 | ||
| 
 | ||
| public partial class DeptEmp : PageBase
 | ||
| {
 | ||
|     private LEmployee _logic; 
 | ||
|     protected void Page_Load(object sender, EventArgs e)
 | ||
|     {
 | ||
|    
 | ||
|         if (!IsPostBack)
 | ||
|         {
 | ||
|             _logic = new LEmployee();
 | ||
|              
 | ||
|             Databound();  
 | ||
|            
 | ||
|              //分配角色时初始化部门人员树
 | ||
|             
 | ||
|         }
 | ||
|         SessionSeting();
 | ||
| 
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// bound the query list.
 | ||
|     /// </summary>
 | ||
|     private void Databound()
 | ||
|     { 
 | ||
|          bindGV();
 | ||
|          UpdateSession();
 | ||
|         bindDept();
 | ||
|         bindDeptEmp();
 | ||
|  
 | ||
|         
 | ||
|     }
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// 绑定部门 
 | ||
|     /// </summary>
 | ||
|     private void bindDept()
 | ||
|     {
 | ||
|         TreeDept.Nodes.Clear();
 | ||
|         BindTree(TreeDept, "0", TreeDept.SelectedNode, _logic.GetDepartments().DefaultView);
 | ||
|         SetTreeDeptChecked();
 | ||
| 
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// 绑定部门及用户
 | ||
|     /// </summary>
 | ||
|     private void bindDeptEmp()
 | ||
|     {
 | ||
|         TreeDeptEmp.Nodes.Clear();
 | ||
|         BindEmpTree(TreeDeptEmp, "0", TreeDeptEmp.SelectedNode, _logic.GetDepartments().DefaultView, _logic.GetActivedEmpDept().DefaultView);
 | ||
|       
 | ||
|        
 | ||
|          
 | ||
|     }
 | ||
| 
 | ||
|    
 | ||
|  
 | ||
|     public void BindEmpTree(TreeView tree, string id, TreeNode pNode, DataView deptdv,DataView empdv)
 | ||
|     {
 | ||
| 
 | ||
|         deptdv.RowFilter = "dep_mastdept = '" + id + "'";
 | ||
|         foreach (DataRowView row in deptdv)
 | ||
|         {
 | ||
|             TreeNode node = new TreeNode();
 | ||
|             node.Text = row["ID"].ToString() +  "_<em>" + row["dep_name"] + "</em>" ;
 | ||
|             node.Value = row["ID"].ToString();
 | ||
|              node.SelectAction = TreeNodeSelectAction.None;
 | ||
|             node.ShowCheckBox = false;
 | ||
|             node.Expanded = true;
 | ||
|                 empdv.RowFilter = "de_dept=" + node.Value;
 | ||
|                 foreach (DataRowView emrow in empdv)
 | ||
|                 {
 | ||
|                     TreeNode tnEmp = new TreeNode("<Strong>" + emrow["em_name"] + "</Strong>"  , emrow["empId"].ToString()); 
 | ||
|                     node.ChildNodes.Add(tnEmp); 
 | ||
|                 }
 | ||
|             if (pNode == null)
 | ||
|                 //说明是根节点
 | ||
|             {
 | ||
| 
 | ||
|                 tree.Nodes.Add(node);
 | ||
|                  
 | ||
|       
 | ||
|             }
 | ||
|             else
 | ||
|             { 
 | ||
|               
 | ||
|                 pNode.ChildNodes.Add(node); 
 | ||
|                
 | ||
|             }
 | ||
|             BindEmpTree(tree,node.Value, node, new DataView(deptdv.Table), new DataView(empdv.Table));
 | ||
| 
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     public void BindTree(TreeView tree, string id, TreeNode pNode, DataView deptdv )
 | ||
|     {
 | ||
| 
 | ||
|         deptdv.RowFilter = "dep_mastdept = '" + id + "'";
 | ||
|         foreach (DataRowView row in deptdv)
 | ||
|         {
 | ||
|              
 | ||
|             TreeNode node = new TreeNode();
 | ||
|             node.Text = row["ID"].ToString() +"_<Strong>" + row["dep_name"].ToString() + "</Strong>";
 | ||
|             node.Value = row["ID"].ToString();
 | ||
| 
 | ||
|             node.SelectAction = TreeNodeSelectAction.None;
 | ||
|            
 | ||
|           //  node.ShowCheckBox = Convert.ToInt16(row["dep_type"].ToString()) == 1;
 | ||
|           
 | ||
|             node.Expanded = true;
 | ||
|            
 | ||
|             if (pNode == null)
 | ||
|             //说明是根节点
 | ||
|             {
 | ||
|                 tree.Nodes.Add(node);                
 | ||
|             }
 | ||
|             else
 | ||
|             {
 | ||
|                 pNode.ChildNodes.Add(node);
 | ||
|             }
 | ||
|             BindTree(tree, node.Value, node, new DataView(deptdv.Table));
 | ||
| 
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     private void SessionSeting()
 | ||
|     {
 | ||
|         if (IsPostBack)
 | ||
|         {
 | ||
|             _logic = (LEmployee)Session[appScope.PagelevelObj];   
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     private void UpdateSession()
 | ||
|     {
 | ||
|        Session[appScope.PagelevelObj] = _logic;
 | ||
|     }
 | ||
| 
 | ||
|     
 | ||
|     /************************************** protected methods (event listeners) ********************************/
 | ||
|  
 | ||
| 
 | ||
|     protected void btnSubmit_Click(object sender, EventArgs e)
 | ||
|     {
 | ||
|         if (TreeDeptEmp.SelectedNode== null)  return;
 | ||
|         ArrayList al = new ArrayList();
 | ||
| 
 | ||
|         GetCheckedNode(TreeDept.Nodes, al);
 | ||
|         _logic.Initialize();
 | ||
| //        using (TransactionScope trans = new TransactionScope())
 | ||
|         {
 | ||
|             try
 | ||
|             {
 | ||
|                 _logic.GetDeptEmp.Delete(Convert.ToInt32(TreeDeptEmp.SelectedValue));
 | ||
| 
 | ||
|                 foreach (string id in al)
 | ||
|                 {
 | ||
|                     _logic.GetDeptEmp.de_dept = Convert.ToInt32(id);
 | ||
|                     _logic.GetDeptEmp.de_employee = Convert.ToInt32(TreeDeptEmp.SelectedValue);
 | ||
|                     _logic.GetDeptEmp.Add();
 | ||
|                 } 
 | ||
| 
 | ||
| //                trans.Complete();
 | ||
|             }
 | ||
|             catch (MyException)
 | ||
|             {
 | ||
|                 throw;
 | ||
|             }
 | ||
|             catch (Exception)
 | ||
|             {
 | ||
|                 throw new Exception("出现异常,保存失败。");
 | ||
|             }
 | ||
| 
 | ||
| 
 | ||
|         }
 | ||
|       
 | ||
|        
 | ||
|         Databound();
 | ||
|     }
 | ||
| 
 | ||
|    
 | ||
|     //reset the page
 | ||
|     protected void btnCancel_Click(object sender, EventArgs e)
 | ||
|     {
 | ||
|         _logic.Initialize();
 | ||
|         Page_Load(this, e);
 | ||
|        
 | ||
|     }
 | ||
| 
 | ||
|     /***************************************** internal methods ********************************************/
 | ||
| 
 | ||
|     /// <summary>
 | ||
|     /// set data from page to shift object
 | ||
|     /// </summary>
 | ||
|     private void SetDataBack()
 | ||
|     {
 | ||
| 
 | ||
| 
 | ||
|     }
 | ||
| 
 | ||
|  void GetCheckedNode(TreeNodeCollection tnc, ArrayList checkedvalues )
 | ||
|  {
 | ||
|         foreach(TreeNode node in tnc)
 | ||
|         {
 | ||
|             if(node.Checked)
 | ||
|     {
 | ||
|         checkedvalues.Add(node.Value);
 | ||
|                  
 | ||
|             }
 | ||
|             GetCheckedNode(node.ChildNodes, checkedvalues);
 | ||
|        }
 | ||
| }
 | ||
| 
 | ||
|     void SetCheckedNode(TreeNodeCollection tnc, ArrayList setcheckedvalues)
 | ||
|     {
 | ||
|         foreach (TreeNode node in tnc)
 | ||
|         { 
 | ||
|             node.Checked = setcheckedvalues.Contains(Convert.ToInt32(node.Value)); 
 | ||
|              
 | ||
|             SetCheckedNode(node.ChildNodes, setcheckedvalues);
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
|     private void chgOperTxt(bool addNew)
 | ||
|     {
 | ||
|  
 | ||
|         btnSubmit.Enabled = true;
 | ||
|         
 | ||
|     }
 | ||
|     void SetTreeDeptChecked()
 | ||
|     {
 | ||
|        if( TreeDeptEmp.SelectedNode ==null) return;
 | ||
|         ArrayList deptList = new ArrayList();
 | ||
|         DataTable dt = _logic.GetDepartments(Convert.ToInt32(TreeDeptEmp.SelectedValue));
 | ||
|         foreach (DataRow dr in dt.Rows)
 | ||
|         {
 | ||
|             deptList.Add(dr["de_dept"]);
 | ||
|         }
 | ||
|         SetCheckedNode(TreeDept.Nodes, deptList); 
 | ||
|     }
 | ||
|      
 | ||
|     protected void TreeDeptEmp_SelectedNodeChanged(object sender, EventArgs e)
 | ||
|     {
 | ||
|         GvDept.SelectedIndex = -1;
 | ||
|         SetTreeDeptChecked();   
 | ||
|         bindGV();
 | ||
|        
 | ||
|     }
 | ||
|      
 | ||
|    
 | ||
|     void bindGV( )
 | ||
|     {
 | ||
|         //人员部门清单
 | ||
|         string nodevalue = TreeDeptEmp.SelectedValue;
 | ||
|         if (nodevalue.Length >0 && nodevalue  != "0")  //selected node is an employee
 | ||
|         {     
 | ||
|       
 | ||
|           lbEmDept.Text = TreeDeptEmp.SelectedNode.Text + " 人员部门清单";
 | ||
|           GvDept.DataSource = _logic.GetDepartments(Convert.ToInt32(nodevalue));
 | ||
|      
 | ||
|        
 | ||
|         }
 | ||
|         GvDept.DataBind();
 | ||
|        
 | ||
|     }
 | ||
| 
 | ||
|     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();
 | ||
|     }
 | ||
| } |