1

我有一个这样的数据结构:

节点父名称
1 -1 级别 1
2 1 级别 2 - 1
3 1 级别 2 - 2
4 2 3 级 - 1
5 2 3 级 - 2
6 3 3 级 - 3
……

这可能导致无限级别的数据。我想使用 infragistics igtre 来构建这样的树视图。我检查了一些基本示例,但不是很有帮助。例如: http ://help.infragistics.com/jQuery/2013.1/ui.igtree 它仅限于预定义的层次结构。我想构建一棵树,此外,我希望能够在任何级别添加任何节点,并移动任何节点。我正在使用asp.net JQUERY AJAX,首选基础设施控制。没做过mvc模型。任何有这方面经验的人都可以给我一些示例代码吗?非常感谢。

4

1 回答 1

3

igTree 是一个动态控件,它不限于预定义的层次结构 - 授予,您的模型必须符合某些基本模式 - 控件无法自行确定绑定,但是您可以共享单个绑定到整个树。基本上,您必须查看正确的位置 - 例如,我采用了这个Add Remove Node API 示例,并使用类似的绑定创建了这个示例:

http://jsfiddle.net/damyanpetev/x4eAB/

这是为了证明:

  • 初始层次结构是随机的(某些项目具有额外的级别) - 因此您在开始时不受限于所有内容的固定级别。
  • 添加额外节点可以在任何级别完成,新节点本身也可以有多个级别,因此这为您提供了所需的无限层次结构。
  • 当您定义单个绑定时,它将用于后续杠杆,因此所有项目都具有“文本”属性并具有“节点”,其中包含更多包含文本和节点的项目,依此类推。

    $("#tree").igTree({
        bindings: {
           textKey: 'Text',
           valueKey: 'Text',
           childDataProperty: 'Nodes'
        }
    });
    
  • 由于共享绑定,任何节点都可以成为任何其他节点的父节点,这意味着您可以使用单个属性启用拖放并随意移动节点。

我假设由于您希望拥有无限的层次结构,因此您的模型项是相似的,并且很容易匹配这种情况,如果不是,您可以使用一些 LINQ 来修复它们。您提供的数据结构并不能很好地描述您的模型,所以如果这对您没有帮助,我需要更多信息。

于 2013-07-16T08:42:15.780 回答