公司表
部门表
职位表
员工表
4个表用树型结构显示出来,如何实现??
TreeView点中  旁边DataGridView筛选出员工信息。谢谢。

解决方案 »

  1.   

    不太清楚.没好的方法就用4个for语句
      

  2.   

    公司表有个ID号
    部门表 有个ID号。还有个公司表的ID号
    职位表 有个ID号,还有个部门表的ID号员工表 就有公司,部门,职位表的3个ID号。
      

  3.   

    递归遍历绑定数据
     private void BindData()
      {
          List<Company> lst;
          foreach(Company c in lst)
         {
            TreeNode root = new TreeNode();
            root.Value = "0";
            root.Text = "";
            this.Treeview1.Nodes.Add(root);
            IList<Department> lstDept; //查询部门
            BindTree(root, lstDept);
         }
       }
     private void BindTree(TreeNode node, IList<Department> lstDept)
            {
                foreach (Department dept in lstDept)
                {
                     //查询是否有子部门有,递归BindTree
                        TreeNode nd = new TreeNode();
                        nd.Text = "";
                        BindPost(nd,id);
                        node.ChildNodes.Add(nd);
                        nd.Expanded = true;
                    }
                }
            }
     public void BindUser(TreeNode node, int Id)
            {}
     public void BindPost(TreeNode node, int Id)
            {}
    参考
      

  4.   

    在treeview中编写nodechick事件程序,触发gridview做相应的改动加载不同的内容。
      

  5.   

    绑定TREEVIEW上面都说过了.
    不知道你的需求是否确定是要一次把整个树绑定,如果是的话,建议你在数据库里做一张视图(CompanyId,CompanyName,DeptId,DeptName,JobId,JobName,EmployeeId,EmployeeName)
    然后一次性读取这个视图到DataTable,再递归绑定。
    绑定的时候Node的Value处理一下,如果公司节点就设为C+CompanyId,部门节点就设为D+DeptId,在点击NODE后,取得NODE的value,然后substring,根据第一位生成where条件CompanyId= 或者DeptId=在视图内查询就可以了