一棵树的故事(后续)

时间:2022-02-20 08:21:17
想实现这样的功能
---------------------------|
长沙(一级节点)           |
  长沙威胜(二级节点)     |       
  中联中科(二级节点)     | 
                           |
                           | 
                           |
北京(一级节点)           |
  北京某某公司(二级节点) |
                           |
                           |
上海(一级节点)           |
  上海某某公司(二级节点) |
___________________________|

我想实现上面这颗树

首先我添加 一级节点
  foreach (DataRowView row in ds.Tables[0].DefaultView)
        {
            node = new TreeNode();
            node.Text = row["name"].ToString();
            node.Value = row["id"].ToString();
            node.NavigateUrl = "buildingconfig/b_tabpage_update.aspx?id="+node.Value    ;
            node.Target = "Right";
            TreeView1.Nodes.Add(node);
        }

然后添加2级节点,
我的想法是把2级节点添加到对应的一级节点。

比如,长沙威胜电子,在数据库中但单位表有这样一条记录  pjtname=长沙威胜   所属地市:长沙

有很多单位信息,我想把每条单位的信息添加到对应的一级节点 里面 ,根据 单位表里面的“所属地市” 来做判断。

请问怎样处理

8 个解决方案

#1


如果你数据库里结构好的话,可以一次性把树构建出来。就是递归的运用

#2


数据库稀烂的, 

#3


http://www.cnblogs.com/kingfly/archive/2009/09/21/1571016.html

看下这个你再不会你打熊猫! 一棵树的故事(后续)

#4


引用楼主 cx1054980531 的回复:
想实现这样的功能
---------------------------|
长沙(一级节点)          |
  长沙威胜(二级节点)    |     
  中联中科(二级节点)    |
                          |
                          |
                          |
北京(一级节点)          |
  北京某某公司(二级节点) |
                          |
                          |
上海(一级节点)          |
  上海某某公司(二级节点) |
___________________________|

我想实现上面这颗树

首先我添加 一级节点
  foreach (DataRowView row in ds.Tables[0].DefaultView)
        {
            node = new TreeNode();
            node.Text = row["name"].ToString();
            node.Value = row["id"].ToString();
            node.NavigateUrl = "buildingconfig/b_tabpage_update.aspx?id="+node.Value    ;
            node.Target = "Right";
            TreeView1.Nodes.Add(node);
        }

然后添加2级节点,
我的想法是把2级节点添加到对应的一级节点。

比如,长沙威胜电子,在数据库中但单位表有这样一条记录  pjtname=长沙威胜  所属地市:长沙

有很多单位信息,我想把每条单位的信息添加到对应的一级节点 里面 ,根据 单位表里面的“所属地市” 来做判断。

请问怎样处理

支持

#5


帮顶,关注

#6


有多稀烂....

#7


先绑定一级再绑定二级 然后循环ddl 取出每个一级菜单的id 再去数据库查它的二级 把查到的二级菜单insert到一级后就ok了 就这么简单

#8


前台代码
 <asp:TreeView ID="TreeView1" runat="server">
        <Nodes>
            <asp:TreeNode Text="上海" Value="上海"></asp:TreeNode>
            <asp:TreeNode Text="长沙" Value="长沙"></asp:TreeNode>
            <asp:TreeNode Text="北京" Value="北京"></asp:TreeNode>
        </Nodes>
    </asp:TreeView>
    <asp:Button ID="Button1" runat="server" Text="Button" 
        onclick="Button1_Click" />
后台代码:
 protected void Button1_Click(object sender, EventArgs e)
        {
            //模拟数据
            DataTable dt = new DataTable();
            dt.Columns.Add("city");
            for (int i = 0; i < 10; i++)
            {
                DataRow row = dt.NewRow();
                if (i % 1 == 0)
                {
                   
                    row["city"] = "长沙";
                }
                if (i % 2 == 0)
                {
                    row["city"] = "北京";
                }
                if (i % 3 == 0)
                {
                    row["city"] = "上海";
                }
                dt.Rows.Add(row);
            }
            //构建二次节点
            foreach(DataRow row in dt.Rows)
            {
                foreach (TreeNode n in this.TreeView1.Nodes)
                {
                    if (row["city"].ToString() == n.Text)
                    {
                        ConstructNode(n, row["city"].ToString());
                        continue;
                    }
                }
            }
            
        }

        void ConstructNode(TreeNode node,string value)
        {
            TreeNode n = new TreeNode(value);
            node.ChildNodes.Add(n);
        }
------根据自己的结构作调整。

#1


如果你数据库里结构好的话,可以一次性把树构建出来。就是递归的运用

#2


数据库稀烂的, 

#3


http://www.cnblogs.com/kingfly/archive/2009/09/21/1571016.html

看下这个你再不会你打熊猫! 一棵树的故事(后续)

#4


引用楼主 cx1054980531 的回复:
想实现这样的功能
---------------------------|
长沙(一级节点)          |
  长沙威胜(二级节点)    |     
  中联中科(二级节点)    |
                          |
                          |
                          |
北京(一级节点)          |
  北京某某公司(二级节点) |
                          |
                          |
上海(一级节点)          |
  上海某某公司(二级节点) |
___________________________|

我想实现上面这颗树

首先我添加 一级节点
  foreach (DataRowView row in ds.Tables[0].DefaultView)
        {
            node = new TreeNode();
            node.Text = row["name"].ToString();
            node.Value = row["id"].ToString();
            node.NavigateUrl = "buildingconfig/b_tabpage_update.aspx?id="+node.Value    ;
            node.Target = "Right";
            TreeView1.Nodes.Add(node);
        }

然后添加2级节点,
我的想法是把2级节点添加到对应的一级节点。

比如,长沙威胜电子,在数据库中但单位表有这样一条记录  pjtname=长沙威胜  所属地市:长沙

有很多单位信息,我想把每条单位的信息添加到对应的一级节点 里面 ,根据 单位表里面的“所属地市” 来做判断。

请问怎样处理

支持

#5


帮顶,关注

#6


有多稀烂....

#7


先绑定一级再绑定二级 然后循环ddl 取出每个一级菜单的id 再去数据库查它的二级 把查到的二级菜单insert到一级后就ok了 就这么简单

#8


前台代码
 <asp:TreeView ID="TreeView1" runat="server">
        <Nodes>
            <asp:TreeNode Text="上海" Value="上海"></asp:TreeNode>
            <asp:TreeNode Text="长沙" Value="长沙"></asp:TreeNode>
            <asp:TreeNode Text="北京" Value="北京"></asp:TreeNode>
        </Nodes>
    </asp:TreeView>
    <asp:Button ID="Button1" runat="server" Text="Button" 
        onclick="Button1_Click" />
后台代码:
 protected void Button1_Click(object sender, EventArgs e)
        {
            //模拟数据
            DataTable dt = new DataTable();
            dt.Columns.Add("city");
            for (int i = 0; i < 10; i++)
            {
                DataRow row = dt.NewRow();
                if (i % 1 == 0)
                {
                   
                    row["city"] = "长沙";
                }
                if (i % 2 == 0)
                {
                    row["city"] = "北京";
                }
                if (i % 3 == 0)
                {
                    row["city"] = "上海";
                }
                dt.Rows.Add(row);
            }
            //构建二次节点
            foreach(DataRow row in dt.Rows)
            {
                foreach (TreeNode n in this.TreeView1.Nodes)
                {
                    if (row["city"].ToString() == n.Text)
                    {
                        ConstructNode(n, row["city"].ToString());
                        continue;
                    }
                }
            }
            
        }

        void ConstructNode(TreeNode node,string value)
        {
            TreeNode n = new TreeNode(value);
            node.ChildNodes.Add(n);
        }
------根据自己的结构作调整。