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 ,而你循环加节点是自己加自己,同时并没有赋给父节点,当然是不会出现子节点了
- 3 回答
- 0 关注
- 409 浏览
添加回答
举报
0/150
提交
取消