我想創建一個使用自引用表字段的TreeView嵌套結構。下面是一個簡單的例子:使用自引用表創建TreeView嵌套結構表
Category 1
Product 1
Toy 1
Toy 2
Product 2
Toy 3
Toy 4
多個類別..
數據庫表有稱爲 「A類」 單表。 ParentCategoryId指向父類別。因此,對於類別1,ParentCategoryId爲空,因爲它是父級。對於產品1,ParentCategoryId是類別1的id,對於玩具1,ParentCategoryId是產品1的id。
我使用下面的代碼,但它不能成功生成TreeView(ASP.NET)。
public void BuildTree(List<Category> categories, TreeNode treeNode)
{
if (treeNode == null) return;
TreeNode tnAdd = null;
var categoryId = Guid.NewGuid();
foreach (var category in categories)
{
if (category.IsBaseCategory)
{
tnAdd = new TreeNode();
tnAdd.Text = category.Description;
BuildTree((from c in categories
where c.ParentCategoryId == category.CategoryId
select c).ToList<Category>(), tnAdd);
}
else
{
tnAdd = new TreeNode();
tnAdd.Text = category.Description;
BuildTree((from c in categories
where c.ParentCategoryId == category.CategoryId
select c).ToList<Category>(), tnAdd);
}
if (tnAdd != null)
treeNode.ChildNodes.Add(tnAdd);
}
}
這是否需要遞歸!
和下面是結果我得到:
80W
40W
40W
Light Bulbs
Flourecent
Incedecent
60W
80W
60W
Flourecent
40W
80W
60W
Incedecent
80W
40W
60W
感謝您的答覆!我更新了我的帖子!我認爲在主要應用中它可以達到n級。 – 2010-06-04 16:41:49
你是個天才! – 2010-06-07 16:26:04
還有一個幫助!我需要隱藏treeview控件的根節點。 – 2010-06-07 16:39:35