16,554
社区成员
发帖
与我相关
我的任务
分享
DataTable dtDept = dt.DefaultView.ToTable(true, new string[] {"DDID","DepNo","DepName","UPID" });
3. 对部门数据进行递归,生成树。
递归的同时,将部门作为参数获取该部门下的员工信息。将员工添加到该结点中。
//伪代码
DataTable dtDept = dt.DefaultView.ToTable(true, new string[] {"DDID","DepNo","DepName","UPID" });
for (int i = 0; i < dtDept.Rows.Count; i++)
{
if (dtDept.Rows[i]["UPID"].ToString().Equals("0"))
{
TreeNode node = new TreeNode();
TreeView1.Nodes.Add(node);
DataTable[] rows = //根据dtDept的数据获取的该父结点下的子结点的信息。
DataTable[] employees = //获得属于该节点的员工信息
InitEmp4Dept(node, employee); //为该结点添加员工信息
InitSubDept(node, rows, dtDept); //为该结点添加子结点,递归。
}
}
protected void InitSubDept(TreeNode node, DataRow[] subnodes, DataTable dtDept)
{
if (subnodes.Length == 0)
return;
for (int i = 0; i < subnodes.Length; i++)
{
TreeNode subnode = new TreeNode();
node.ChildNodes.Add(subnode);
DataTable[] rows = //根据dtDept的数据获取的该父结点下的子结点的信息。
DataTable[] employees = //获得属于该节点的员工信息
InitEmp4Dept(node, employee);
InitSubDept(node, rows, dtDept);
}
}
protected void InitEmp4Dept(TreeNode node, DataRow[] employees)
{
if (employees.Length == 0)
return;
for (int i = 0; i < employees.Length; i++)
{
TreeNode nodeemp = new TreeNode();
node.ChildNodes.Add(nodeemp); //添加员工信息
}
}