找了很多资料都没找到我想要的
所以在这里向大家请教下打个比方
这里有两个表 部门表和用户表
  部门表有字段 bumenId,部门
  用户表有字段 useId,用户,bumenId
现在我要实现一个树状图
  部门1
  ..用户1
  ..用户2
  部门2
  ..用户3
  ..用户4
也就是说部门Id相同的用户做同一节点的子节点新手求教,各位大大帮帮忙,能有点小列子更好是Winform窗体程序

解决方案 »

  1.   

    用递归吧   <div id="dv_path_body" runat="server">
       <div class="dv_path" onmouseover="this.style.backgroundColor='#CCEFFD'" onmouseout="this.style.backgroundColor=''" >
      <ul>
      <li style="margin-right:2px;"><img src="../../sysImages/folder/nos.gif" width="11" height="11" align="middle" /></li>
      <li style="margin-right:2px;"><img src="../../sysImages/default/admin/menu_dot_2.gif" width="13" height="16" align="middle" /></li>
      <li style="width:200px;overflow:hidden; padding-top:2px; ">工程部</li>
      <li><input type="checkbox" name="checkbox" value="checkbox" /></li>
      <li>
      <a href=""><img src="/sysImages/default/sysico/edit.gif" width="34" height="21" /></a>
      <a href=""><img src="/sysImages/default/sysico/addclass.gif" width="58" height="21" /></a>
      <a href=""><img src="/sysImages/default/sysico/del.gif" width="34" height="21" /></a>
      </li>
      </ul>
      </div>
      </div>using System;
    using System.Collections.Generic;using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Galsun.Common;
    using Galsun.Nfdw.Content;
    using Galsun.Nfdw.Mode;namespace Galsun.Nfdw.Web.manage.Base
    {
        public partial class organ_list : Galsun.Nfdw.Web.UI.ManagePage
        {
            private Organ org = new Organ();
            protected void Page_Load(object sender, EventArgs e)
            {
                Response.Expires = 0;
                Response.CacheControl = "no-cache";
                if (!IsPostBack)
                {
                    setdatalist();
                }
            }
            private void setdatalist()
            {
                dv_path_body.InnerHtml = getdatalist("0", 1);
            }
            private string getdatalist(string parent, int leve)
            {
                string _strform = string.Empty;
                _strform += "   <div class=\"dv_path\"  onmouseover=\"this.style.backgroundColor='#CCEFFD'\" onmouseout=\"this.style.backgroundColor=''\" >\r\n";
                _strform += "   <ul style=\"padding-left:{3}px;\">\r\n";
                _strform += "   <li style=\"margin-right:2px;\"><img src=\"/sysImages/folder/nos.gif\" width=\"11\" height=\"11\"  /></li>\r\n";
                _strform += "   <li><input type=\"checkbox\" name=\"c_id\" id=\"c_id\" value=\"{0}\" /></li>\r\n";
                _strform += "   <li style=\"margin-right:2px;padding-top:2px;\"><img src=\"/sysImages/default/admin/menu_dot_2.gif\" width=\"13\" height=\"16\"  /></li>\r\n";
                _strform += "   <li style=\"width:300px;overflow:hidden; \">{1}({2})</li>\r\n";
                _strform += "   <li>\r\n";
                _strform += "   <a href=\"organ_add.aspx?act=edit&id={0}\"><img src=\"/sysImages/default/sysico/edit.gif\" width=\"34\" height=\"21\" /></a>\r\n";
                _strform += "   <a href=\"organ_add.aspx?act=add&id={0}\"><img src=\"/sysImages/default/sysico/addclass.gif\" width=\"58\" height=\"21\" /></a>\r\n";
                _strform += "   <a href=\"javascript:del({0});\"><img src=\"/sysImages/default/sysico/del.gif\" width=\"34\" height=\"21\" /></a>\r\n";
                _strform += "   </li>\r\n";
                _strform += "   </ul>\r\n";
                _strform += "   </div>\r\n";
                string _list = string.Empty;
                foreach (t_1000info item in org.GetOrganList(parent))
                {
                    _list = _list + string.Format(_strform, item.T_1001, item.T_1003,item.T_1002, (leve * 13)) + getdatalist(item.T_1002, leve + 1);
                }
                return _list;
            }
        }
    }
      

  2.   

    DataTable dtBumen = new DataTable();
    dtBumen.Columns.Add("bumenId");
    dtBumen.Columns.Add("bumenName");
    dtBumen.Rows.Add("B1", "部门A");
    dtBumen.Rows.Add("B2", "部门B");
    dtBumen.Rows.Add("B3", "部门C");
    foreach (DataRow row in dtBumen.Rows)
        treeView1.Nodes.Add(row["bumenId"].ToString(), row["bumenName"].ToString());DataTable dtUser = new DataTable();
    dtUser.Columns.Add("userId");
    dtUser.Columns.Add("userName");
    dtUser.Columns.Add("bumenId");
    dtUser.Rows.Add("001", "用户1", "B1");
    dtUser.Rows.Add("002", "用户2", "B1");
    dtUser.Rows.Add("003", "用户3", "B1");
    dtUser.Rows.Add("004", "用户4", "B2");
    dtUser.Rows.Add("005", "用户5", "B3");
    foreach (DataRow row in dtUser.Rows)
    {
        TreeNode parent = treeView1.Nodes[row["bumenId"].ToString()];
        parent.Nodes.Add(row["userId"].ToString(), row["userName"].ToString());
    }
      

  3.   

    protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
        {
            if (e.Node.ChildNodes.Count == 0)
            {            switch (e.Node.Depth)
                {
                    case 0:
                        Populateyear(e.Node);
                        break;
                    default:
                        Populatemonth(e.Node);
                        break;
                }
            }
        }
    void Populateyear(TreeNode node)
        {
            string str = "select * from gw_treemenu where parent='0' order by id";
            PMS.Common.DataAccess dataas = new PMS.Common.DataAccess();
            DataTable DT = dataas.CreateDataTable(str);
            foreach (DataRow row in DT.Rows)
            {
                TreeNode NewNode = new TreeNode(row["title"].ToString().Trim(), row["id"].ToString().Trim());
                NewNode.PopulateOnDemand = true;
                NewNode.ImageUrl = "~/image/tree/folder.gif";
                NewNode.SelectAction = TreeNodeSelectAction.SelectExpand;
                node.ChildNodes.Add(NewNode);
            }
        } <asp:TreeView ID="TreeView1" runat="server" NodeIndent="15" CollapseImageUrl="~/image/tree/folder.gif"
                                            ExpandDepth="2" ExpandImageUrl="~/image/tree/folder-open.gif" ImageSet="XPFileExplorer"
                                            OnTreeNodePopulate="TreeView1_TreeNodePopulate" OnTreeNodeExpanded="TreeView1_TreeNodePopulate"
                                            OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" ShowLines="True" >
                                            <HoverNodeStyle Font-Underline="True" ForeColor="#6666AA" />
                                            <Nodes>
                                                <asp:TreeNode Text="根节点" Value="0" PopulateOnDemand="True" SelectAction="SelectExpand">
                                                </asp:TreeNode>
                                            </Nodes>
                                            <NodeStyle Font-Names="Tahoma" Font-Size="8pt" ForeColor="Black" HorizontalPadding="2px"
                                                NodeSpacing="0px" VerticalPadding="2px" />
                                            <ParentNodeStyle Font-Bold="False" />
                                            <SelectedNodeStyle Font-Underline="False" HorizontalPadding="0px" VerticalPadding="0px"
                                                BackColor="#B5B5B5" />
                                        </asp:TreeView>
      

  4.   

    是Winform窗体程序