tba中
groupnm             deptnm                       
人事        人事1,人事2,人事3
营业        营业a,营业q
在tbb中
deptnm            linenm
人事1            Line1
人事1            Line2
人事2            Line7想得到
-人事
   -人事1
        - Line1
        - Line2   -人事2
        - Line7
   -人事3 
-营业这样的树形结构,并且展开时是-,收缩时是+
得怎么样实现呢?

解决方案 »

  1.   

    晕啊,- Line1
        - Line2
    应该是在人事1的下级,怎么一发布,位置都象是跟人事1是同级的
      

  2.   

    TreeView就可以勒从数据库里读取部门名称的时候后台处理一下spilt(new char(','))分割数组然后循环添加子节点勒
      

  3.   

    treeview递归就可实现了
    先查询tba,根据deptnm   查询人员,递归绑定
      

  4.   

        //添加根节点
        private void AddRoot()
        {
            DM dm = new DM();
            DataSet ds = dm.getMenuByLevel(ROOT.ToString());
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                TreeNode NewNode = new TreeNode();
                NewNode.Text = "<FONT face='微软雅黑' size='2'>" + ds.Tables[0].Rows[i]["Menu_Name"].ToString() + "</FONT>";
                TreeView1.Nodes.Add(NewNode);
                NewNode.Expanded = true;
            }
        }    private void AddSubMenu()
        {
            DataSet ds;
            DM dm = new DM();
            ds = dm.getMenuByLevel(ROOT.ToString());
            for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
            {
                InitTreeChildNode(TreeView1.Nodes[j], ds.Tables[0].Rows[j]["Menu_ID"].ToString());
            }
        }    /// <summary>
        /// 初始化TreeView 的 ChildNodes
        /// </summary>
        private void InitTreeChildNode(TreeNode PNode, string classParentID)
        {
            DataSet ds, ds2;
            DM dm = new DM();
            ds = dm.getMenuByLevel(classParentID);
            DataView dataView = new DataView();
            dataView = ds.Tables[0].DefaultView;
            foreach (DataRowView drv in dataView)
            {
                string id = drv["Menu_ID"].ToString();
                string name = drv["Menu_Name"].ToString();
                TreeNode NewNode = new TreeNode();
                //将所属县的项目添加到各个县的节点下面
                DM dm2 = new DM();
                ds2 = dm2.getProjectByLevel(id, ViewState["currentYear"].ToString());
                NewNode.Text = "<FONT face='微软雅黑' size='2'>" + name + "</FONT><font face='微软雅黑' color='red' size='2'>(" + ds2.Tables[0].Rows.Count + ")个</font>";
                foreach (DataRowView drv2 in ds2.Tables[0].DefaultView)
                {
                    string id2 = drv2["zoneid"].ToString().Substring(0, 6).ToString();
                    string name2 = drv2["name"].ToString();
                    TreeNode SubNode = new TreeNode();
                    SubNode.Text = "<FONT face='微软雅黑' size='2'>" + name2 + "</FONT>";
                    SubNode.NavigateUrl = "../xmtbmx.aspx?ProjID=" + int.Parse(drv2["proj_id"].ToString()) + "";
                    SubNode.Target = "center";
                    NewNode.ChildNodes.Add(SubNode);
                    SubNode.Expanded = false;
                }
                PNode.ChildNodes.Add(NewNode);
                InitTreeChildNode(NewNode, id);
            }
        }