为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

子衿沉夜 2018-12-07 00:24:50
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控件,没有修改其他的属性,大侠们,求助啊…… 在线等…… 在线等…… 在线等……
查看完整描述

3 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

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 ,而你循环加节点是自己加自己,同时并没有赋给父节点,当然是不会出现子节点了

查看完整回答
反对 回复 2019-01-21
?
慕沐林林

TA贡献2016条经验 获得超9个赞

楼上正解

查看完整回答
反对 回复 2019-01-21
?
呼唤远方

TA贡献1856条经验 获得超11个赞

你的怎么判断父节点呢  新手解释一下吗?

查看完整回答
反对 回复 2019-01-21
  • 3 回答
  • 0 关注
  • 409 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信