当前位置:编程学习 > C#/ASP.NET >>

求高手来帮忙解决treeview的绑定问题


表B中的Aid对应着表A中的id,也就是它的子节点,怎么把这个关系绑定到treeview,说具体点,谢谢 --------------------编程问答-------------------- 使用递归,
首先选中父节点,在选出此父节点的子节点,一层一层添加
--------------------编程问答--------------------

private TreeNode getTreeView1()
        {
            TreeNode node = new TreeNode();
            DataTable dtA = new DataTable();

            //这里将A表中的数据搜索大放到dtA表中;
            //dtA=.....
            //select * from A 
            if (dtA.Rows.Count > 0)
            {
                for (int i = 0; i < dtA.Rows.Count; i++)
                {
                    TreeNode node1 = new TreeNode();
                    node1.Text = dtA.Rows[i]["Name"].ToString();
                    node1.Value = dtA.Rows[i]["id"].ToString();
                    DataTable dtB = new DataTable();
                    //这里将B表中搜索到的数据放到dtB表中;
                    //dtB=.....
                    //select * form B where Aid=【dtA.Rows[i]["id"].ToString()】,括号里的是A表的id值,
                    if (dtB.Rows.Count > 0)
                    {
                        for (int j = 0; j < dtB.Rows.Count; j++)
                        {
                            TreeNode node2 = new TreeNode();
                            node2.Text = dtB.Rows[i]["Name"].ToString();
                            node2.Value = dtB.Rows[i]["id"].ToString();
                            node1.ChildNodes.Add(node2);
                        }
                        node1.Expanded = true;
                    }
                    node.ChildNodes.Add(node1);
                }
                node.Expanded = true;
            }
            return node;
        }



在Page_Load事件里写
TreeView1.Nodes.Add(getTreeView1());
应该就可以了, --------------------编程问答-------------------- 我以前项目中绑定Treeview的代码给你参考一下吧!

 Sqlconn sqlconn = new Sqlconn();

        private void tvbind()
        {
            tvmodule.Nodes.Clear();
            TreeNode tnp = new TreeNode("所有系统模块", "0");
            tnp.Expand();
            tvmodule.Nodes.Add(tnp);
            for (int i = 0; i < sqlconn .modone().Rows .Count ; i++)
            { 
                TreeNode tn = new TreeNode (sqlconn.modone ().Rows [i][1].ToString (),sqlconn.modone ().Rows [i][0].ToString ());
                if (IsPostBack)
                {
                    tn.Expand();
                }
                tvmodule.Nodes[0].ChildNodes.Add(tn);
                for (int j = 0; j < sqlconn.modtwo( Convert .ToInt32( sqlconn.modone().Rows[i][0])).Rows.Count; j++)
                {
                    TreeNode tntwo = new TreeNode(sqlconn.modtwo(Convert.ToInt32(sqlconn.modone().Rows[i][0])).Rows[j][2].ToString(), sqlconn.modtwo(Convert.ToInt32(sqlconn.modone().Rows[i][0])).Rows[j][0].ToString());
                    tvmodule.Nodes[0].ChildNodes[i].ChildNodes.Add(tntwo);
                }
            }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                tvbind();
            }
        }

--------------------编程问答-------------------- treeview递归
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,