2012-05-23 175 views
-4

我有一個獨特的SQL數據庫設置,我使用嵌套集來確定層次結構。下面是它的一個例子:TreeView使用MVC 3與剃刀引擎

HIERARCHYID = 1,HierarchyText = 「合同」,HierarchyLeft = 1HierarchyRight = 54

HIERARCHYID = 2,HierarhcyText = 「第1部分...」 HierarchyLeft = 2HierarchyRight = 41

HIERARCHYID = 3,HierarchyText = 「第2部分...」,HierarchyLeft = 42HierarchyRight = 45

HIERARCHYID = 8,HierarchyText = = 3,HierarchyRight = 40

的想法是,在兒童(或子類別)都包含在 「常規規定」, HierarchyLeft父母的左和右值。所以,例如,「一般規定」是「合同」的一個孩子,即「第一部分......」的孩子。 「第1部分...」和「第2部分」是彼此的兄弟姐妹,因爲它們並不包含左右值。

我有這樣的問題:有沒有辦法使用MVC3與Razor引擎創建一個樹,並顯示它從這個數據庫拉?我見過的唯一例子是數據庫,數據庫中的每個節點都指向它的父節點。如果可能,您能否提供CONTROLLER和VIEW的示例代碼?我會很感激。另外,我可以按級別拉取層次結構名稱。所以,我會很欣賞這樣一個例子,我可以一次給樹控件一個級別。例如,餵食頂級......當用戶點擊它時,餵食下一個級別等等。我非常感謝任何幫助!

+0

[你有什麼試過](http://mattgemmell.com/2008/12/08/what-have-you-tried/)? –

回答

1

您似乎在使用Nested Set Model來定義分層數據。就我個人而言,一旦將數據從數據庫中提取到視圖模型中以顯示樹,我將使用遞歸顯示模板。以下是an example,其中我演示了類似的概念,您可以根據自己的具體要求進行調整。

+0

我發現我的問題在這裏並不是很受歡迎,但我真的很感謝你的幫助。它確實有幫助。再次感謝! – TheDude

+0

@TheDude,如果您發現此答案有幫助,您可以考慮將其標記爲答案,方法是點擊旁邊的勾號:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-工作 –

+0

謝謝,Darin。還有一個問題:是否可以一次一個樹地逐個填充一棵樹而不是整棵樹?換句話說,我想填充頂層......用戶點擊它,然後拉入第二層,依此類推。 – TheDude