猿问

treeview控件动态绑定数据库时候,子节点不会出现,求助啊……

treeview控件动态绑定数据库时候,子节点不会出现,断点调试的时候,添加子节点的过程也执行了,但再页面中就是不会显示,以下是我的代码:

using System;
using System.Data;
using System.Configuration;
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 System.Xml;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DataView dv = Dview("select * from menu1");
            foreach (DataRowView drv in dv)
            {
                TreeNode tn = new TreeNode();
                tn.Text = drv["text"].ToString();
                tn.Value = drv["bid"].ToString();
                tn.Expanded = true;
                TreeView1.Nodes.Add(tn);
                AddchildNOde(tn);
            }
        }
    }
    private DataView Dview(string query)
    {
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["menustr"].ConnectionString);
        SqlDataAdapter da = new SqlDataAdapter(query, conn);
        DataSet ds = new DataSet();
        da.Fill(ds,"tree");
        return ds.Tables["tree"].DefaultView;
    }
    private void AddchildNOde(TreeNode tn)
    {
        int bid = Convert.ToInt32(tn.Value);
        DataView dv = Dview("select * from menu2 where bid='"+bid+"'");
        foreach (DataRowView drv in dv)
        {
            TreeNode ctn = new TreeNode();
            ctn.Text = drv["text"].ToString();
            ctn.Value = drv["cid"].ToString();
            ctn.NavigateUrl = drv["url"].ToString();
            ctn.ChildNodes.Add(ctn);
        }
    }
}

页面中也就是添加了一个treeview控件,没有修改其他的属性,大侠们,求助啊……

在线等……

在线等……

在线等……

子衿沉夜
浏览 410回答 3
3回答

慕的地8271018

foreach (DataRowView drv in dv)        {            TreeNode ctn = new TreeNode();            ctn.Text = drv["text"].ToString();            ctn.Value = drv["cid"].ToString();            ctn.NavigateUrl = drv["url"].ToString();            ctn.ChildNodes.Add(ctn);这句出了问题,应该是tn.ChildNodes.Add(ctn);        }你在方法定义上private void AddchildNOde(TreeNode tn),父节点是tn ,而你循环加节点是自己加自己,同时并没有赋给父节点,当然是不会出现子节点了

慕沐林林

楼上正解

呼唤远方

你的怎么判断父节点呢  新手解释一下吗?
随时随地看视频慕课网APP
我要回答