使用jQuery treeTable进行延迟加载

时间:2012-02-15 15:32:36

标签: jquery treetable

我正在使用此插件来获取树视图表:http://ludo.cubicphuse.nl/jquery-plugins/treeTable/doc/

它很棒,除了我需要的一件事,就是延迟加载内容。

它确实提供了一个文件夹打开时的回调功能,然后我用它来获取新打开的分支并使用ajax调用来填充数据。它可以很好地填充表格,但添加的行不符合它们应该的缩进结构。

对jQuery的调用('#tree-table')。treeTable({});在添加额外的行之后会导致正确的缩进,但它也会折叠树,这会让用户在深层路径中导航变得烦人。

有没有其他人试图用treeTable做类似的事情?

3 个答案:

答案 0 :(得分:2)

GitHub上有一个关于延迟加载的问题,这可能有所帮助:https://github.com/ludo/jquery-treetable/issues/24

答案 1 :(得分:0)

看起来你会想要使用:

expand :    Recursively show all node's children in a tree.
reveal :    Reveal a node by expanding all ancestors.

他们在API中提供的功能。添加新分支后,请确保保存对它的引用,然后在重新初始化之后再调用一个函数使其显示(在这种情况下可能显示为())。

答案 2 :(得分:0)

var orgExpandNode = $.fn.jqGrid.expandNode, 
        orgCollapseNode = $.fn.jqGrid.collapseNode;

    $.jgrid.extend({
        expandNode : function(rc) {
            if(this.getNodeChildren(rc).length===0){
             $.ajax({     
                 url : "http://localhost:8080/xxxx",
                 success : function(data) {                    
                 var    result = data;                   
                 for(var i=0;i<result.length;i++){                      
                        grid.addChildNode(result[i].id,result[i].parent,result[i]); 
                 }
                 result=[];
                   }
             });   
            }
          return orgExpandNode.call(this, rc);
        },
    });