想实现treeview绑定数据库 把表中的数据全都绑定在treeview上
我是这样做的 可是总是报错 using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using UserTest.UserDAL;
public partial class Tree : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            this.NodeBind();
            // dv.RowFilter();        }
    }
    public void NodeBind()
    {
        this.tvRight.Nodes[0].ChildNodes.Clear();//清空TreeView中所有节点 
        this.tvRight.Nodes[0].Expanded = true;//设置根节点为展开形式 
        this.AddChildNode("NULL ", this.tvRight.Nodes[0]);
    }
    public void AddChildNode(string sqltj, TreeNode tn)
    {
        string sql = "SELECT * FROM userInfo";
        DataTable dt = UserTestDAL.GetUserInfo(sql);        for (int i = 0; i < dt.Rows.Count; i++)//循环DataTable表中子节点记录 
        {
            TreeNode tnchild = new TreeNode();//创建新的子节点 
            tnchild.Text = dt.Rows[i][1].ToString();//为新建子节点的文本赋值 
            tnchild.Value = dt.Rows[i][1].ToString();//为新建子节点的Value赋值 
            tnchild.Expanded = true;//设置为不展开节点 
            tn.ChildNodes.Add(tnchild);//添加此节点的下一级子节点 
            //递归调用,一直往下直到添加完这一级下面的所有子节点为止,再转到下一个父节点,并添加所有此父节点下面的所有子节点 
            //i代表DataTable表中循环记录,0代表取得这个记录的ID值,为下面继续检查这个ID下是否还有子目录 
            //tnchild递归传递给下一次调用此方法,此时如果这个节点下还有子节点,它便成为父节点,对它下面的子节点进行添加 
            this.AddChildNode(dt.Rows[i][0].ToString(), tnchild);
        } 
    }}

解决方案 »

  1.   

    string sql = "SELECT * FROM userInfo"; 
    你这么写那每次查出来的都是一样的数据了``你的sqltj参数都没有用
      

  2.   

    报什么错误?
    觉得你这个写法有错误,sqltj接收过来又没用,sql又没过滤条件
    我写的无限级Tree,希望对你有帮助 {
            //Response.Write("select * from m_functree where funcid in (select funcid from d_role_right where role in (select role from d_user_role where user_code='" + User.Identity.Name.ToString() + "')) order by taxis asc");
            //Response.End();
            DataTable dt = DB.dt("m_functree", "funcid in (select funcid from d_role_right where role in (select role from d_user_role where user_code='" + User.Identity.Name.ToString() + "')) and enable='1' order by taxis asc", "*");
            DataView dv = dt.DefaultView;
            for (int i = 0; i < dv.Table.Rows.Count;i++ )
            {
                if (dv.Table.Rows[i]["sup_funcid"].ToString() == "0")
                {
                    TreeNode tn = new TreeNode();
                    if (dv.Table.Rows[i]["toolbar_pic"] != null)
                    {
                        tn.Text = "<img src='../images/menu/" + dv.Table.Rows[i]["toolbar_pic"].ToString()+ "' border='0'>&nbsp;" + dv.Table.Rows[i]["funcname"].ToString();
                    }
                    else
                    {
                        tn.Text = dv.Table.Rows[i]["funcname"].ToString();
                    }
                    tn.Value = dv.Table.Rows[i]["funcid"].ToString();
                    tn.NavigateUrl = dv.Table.Rows[i]["link_addr"].ToString();
                    tn.Target = "mainFrame";
                    tn.Expanded = false;
                    Functree.Nodes.Add(tn);
                    AddReplies(dt, tn);
                }
            }
        }
        public void AddReplies(DataTable dt, TreeNode tn)
        {
            DataView dv = dt.DefaultView;
            dv.RowFilter = "sup_funcid='" + tn.Value.ToString() + "'";
            for(int i = 0;i<dv.Table.Rows.Count;i++)
            {
                if (dv.Table.Rows[i]["sup_funcid"].ToString() == tn.Value.ToString())
                {
                    TreeNode rtn = new TreeNode();
                    rtn.Text = dv.Table.Rows[i]["funcname"].ToString();
                    rtn.Value = dv.Table.Rows[i]["funcid"].ToString();
                    rtn.NavigateUrl = dv.Table.Rows[i]["link_addr"].ToString();
                    rtn.Target = "mainFrame";
                    rtn.Expanded = false;
                    tn.ChildNodes.Add(rtn);
                    AddReplies(dt, rtn);
                }
            }
        }