我对C#/ ASP.Net还比较陌生。现在我有一个项目,涉及从两个SQL表绑定树形结构。我做了一些功课..然后我成功地绑定了我的树形结构。首先这是我的表格。我的目标是将子节点分组到其对应的父节点。但发生的情况是每个子节点都放入了所有父节点中。我知道我已经接近成功了,但卡住了。
tblCategory(parentnodes)
categoryID(varchar(20))
Category(varchar(50))
active(char(1))
tblDocuments(childnodes)
id(int)
description(varchar(100))
title(varchar(20))
categoryid(varchar(20))
tblcategory.categoryid = tbldocuments.categoryid
这是我的代码。
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//bindtree
DataTable dtCategoryNodes = new DataTable();
dtCategoryNodes = content.dtCategoryNodes();
dtCategoryNodes.AcceptChanges();
DataTable dtNodes = new DataTable();
dtNodes = content.GetNodes();
dtNodes.AcceptChanges();
TreeNode CategoryNode = null;
for (int i = 0; i < dtCategoryNodes.Rows.Count; i++)
{
string categoryid = dtCategoryNodes.Rows[i]["CategoryID"].ToString();
CategoryNode = new TreeNode(dtCategoryNodes.Rows[i]
"CATEGORY"].ToString());
CategoryNode.Collapse();
for (int j = 0; j < dtNodes.Rows.Count; j++)
{ string parentid = dtNodes.Rows[j]["parentid"].ToString();
TreeNode childNode = new TreeNode(dtNodes.Rows[j]["TITLE"].ToString());
CategoryNode.ChildNodes.Add(childNode);
}
tvContents.Nodes.Add(CategoryNode);
tvContents.DataBind();
}
}
}
但是这里出现了一个问题。以下是我的树发生的情况。
a. Crift Items
a.1Configuring DCOM
b.Internal Refresher Trainings
b.1Configuring DCOM
c. Product/Process Update
c.1 Configuring DCOM
d.Promotions/Discounts
d.1 Configuring DCOM
e.QA Update
e.1 Configuring DCOM
以下是我的数据 tbldocument id 标题 文件 类别ID 1 配置 DCOM DCOM.doc PRODUPDT
注:此文档为IT技术相关内容。tblCategory
CategoryID Category active
CRIFT Crift Items Y
IRTRAIN Internal Refresher Trainings Y
PRODUPDT Product/Process Update Y
PROMODISCS Promotions/Discounts Y
QAUPDT QA Update Y
感谢所有的评论和建议!提前感谢!
for (int j = 0; j < dtChildNodes.Rows.Count; j++) { string parentid = dtChildNodes.Rows[j]["parentid"].ToString(); string url = dtChildNodes.Rows[j]["url"].ToString(); ChildNode = new TreeNode(dtChildNodes.Rows[j]["TITLE"].ToString()); CategoryNode.ChildNodes.Add(ChildNode); } tvContents.Nodes.Add(CategoryNode);
} - Joel