2012-05-23 57 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