Ленивая загрузка с jQuery treeTable - PullRequest
4 голосов
/ 15 февраля 2012

Я использую этот плагин для получения таблицы в виде дерева: http://ludo.cubicphuse.nl/jquery-plugins/treeTable/doc/

Он прекрасно работает, за исключением одной вещи, которая мне нужна, - это ленивая загрузка контента.

Это обеспечивает функцию обратного вызова, когда папка открыта, которую я затем использую, чтобы получить недавно открытую ветвь и использовать вызов ajax, чтобы заполнить ее данными.Это прекрасно работает при заполнении таблицы, но добавленные строки не соответствуют отступной структуре, которую они должны.

Вызов jQuery ('# tree-table'). TreeTable ({});после добавления дополнительных строк приводит к правильному отступу, но также сворачивается дерево, что раздражает пользователя, идущего по глубокому пути.

Кто-нибудь еще пытался сделать что-то подобное с treeTable?

Ответы [ 3 ]

2 голосов
/ 25 июля 2012

В GitHub существует проблема, связанная с отложенной загрузкой, которая может помочь: https://github.com/ludo/jquery-treetable/issues/24

0 голосов
/ 04 сентября 2015
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);
        },
    });
0 голосов
/ 15 февраля 2012

похоже, вы захотите использовать либо:

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

функции, которые они предлагают в своем API.Как только вы добавите новую ветку, убедитесь, что вы сохранили ссылку на нее, а затем после ее повторной инициализации вызовите функцию, чтобы она отобразилась (вероятно, в этом случае, так же, как и в случае с функцией открытия ()).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...