2011-01-06 64 views
0

我需要填充TreeView控件以顯示來自數據庫的層次結構數據。TreeView如何以編程方式創建節點

層次結構順序已由一個列支配,在我的數據庫中稱爲「CategoryNodeString」和「CategoryNodeLevel」。

/=根

例子:

CategoryId CategoryNodeString CategoryNodeLevel 
1   /     0 
2   /1/     1 
3   /2/     1 
4   /1/1/    2 
5   /1/2/    2 
6   /1/1/1    3 

你能爲我提供的代碼示例開始?多謝你們!

+0

爲什麼你兩次發佈相同的問題? http://stackoverflow.com/questions/4613607/bound-a-treeview-control-to-user-defined-complex-type-using-ef-4 – 2011-01-06 15:14:31

+0

嗨,這裏我假設沒有EF invoved。它是一個類似的更簡單的版本。你有什麼主意嗎?感謝您的留言 – GibboK 2011-01-06 15:26:42

回答

1

有了它,是不容易做到的建立你的樹視圖此數據源。複雜性是因爲節點之間沒有父母與子女的關係。該CategoryNodeString應讀取ID父類別編號如下:

CategoryId  ParentCategoryId Node Display String 
0    0     Parent 
1    0     SubParent 
2    0     SubParent 
3    1     Child 
4    2     Child 

從這個數據就可以得到以下結構:

0 (Parent) 
+--1 (SubParent) 
| +--3 (Child) 
+--2 (SubParent) 
| +--4 (Child) 

等等。通過檢查每個節點的parentCategoryId,可以用Linq-to-objects遞歸地完成(半)構建此樹。首先查找parentCategoryId的最低值。創建該節點(使用System.Web.UI.TreeNode對象)。然後追加所有也分享該parentCategoryId的孩子。然後重複每個新添加的子項的過程(因此遞歸)。

相關問題