treeview显示树形表时,所有节点重复出现两次
下面是程序:
if (!this.IsPostBack)
{
db dbase = new db();
conn = dbase.getConn();
try
{
conn.Open();
ds = CreateDataSet();
DataTable dt = new DataTable();
dt = ds.Tables[0];
InitTree(dt, null, "0");
this.TreeView1.DataBind();
}
finally
{
conn.Close();
conn.Dispose();
}
}private void InitTree(DataTable dt, TreeNode node, string id)
{
DataRow[] rows = dt.Select("ParentId='" + id + "'");//筛选出属于父节点“node”的子节点集合 foreach (DataRow drv in rows) //循环子节点集合
{
TreeNode tn = new TreeNode();
tn.Value = drv["NodeId"].ToString(); //存放节点ID
tn.Text = drv["NodeName"].ToString(); //设置节点名称
//theNode.text="<span title=" & txt & ">" & txt & "</span>"
tn.ImageUrl = "image/folderopen.gif";
if (node == null | id == "0")
{
this.TreeView1.Nodes.Add(tn); //添加至根节点
}
else
{
node.ChildNodes.Add(tn);//添加子节点
}
this.InitTree(dt, tn, tn.Value);//递归,添加该节点的子节点
} }表中字段类型都为nvarchar
下面是程序:
if (!this.IsPostBack)
{
db dbase = new db();
conn = dbase.getConn();
try
{
conn.Open();
ds = CreateDataSet();
DataTable dt = new DataTable();
dt = ds.Tables[0];
InitTree(dt, null, "0");
this.TreeView1.DataBind();
}
finally
{
conn.Close();
conn.Dispose();
}
}private void InitTree(DataTable dt, TreeNode node, string id)
{
DataRow[] rows = dt.Select("ParentId='" + id + "'");//筛选出属于父节点“node”的子节点集合 foreach (DataRow drv in rows) //循环子节点集合
{
TreeNode tn = new TreeNode();
tn.Value = drv["NodeId"].ToString(); //存放节点ID
tn.Text = drv["NodeName"].ToString(); //设置节点名称
//theNode.text="<span title=" & txt & ">" & txt & "</span>"
tn.ImageUrl = "image/folderopen.gif";
if (node == null | id == "0")
{
this.TreeView1.Nodes.Add(tn); //添加至根节点
}
else
{
node.ChildNodes.Add(tn);//添加子节点
}
this.InitTree(dt, tn, tn.Value);//递归,添加该节点的子节点
} }表中字段类型都为nvarchar
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货