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控件,没有修改其他的属性,大侠们,求助啊……
在线等……
在线等……
在线等……
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 ,而你循环加节点是自己加自己,同时并没有赋给父节点,当然是不会出现子节点了
楼上正解
你的怎么判断父节点呢 新手解释一下吗?