Динамическая загрузка дочерних узлов в Tabulator - PullRequest
0 голосов
/ 11 февраля 2019
var table = new Tabulator("#view360-table", {
    width:"100%",
    dataTree:true,
    layout:"fitDataFill",
rowContext:function(e, row){
    //e - the click event object
    //row - row component
    alert(row.getIndex());
    },
    dataTreeStartExpanded:false,
    ajaxURL:"http://localhost/JSONNew/rum.json?v="+Math.floor(Math.random()*100000),
    ajaxError:function(xhr, textStatus, errorThrown){
    alert("Sorry Error Loading The Table!");
    },
     dataTreeRowExpanded:function(row, level){
        var index= row.getIndex();
    $.get("http://localhost/JSONNew/id_"+index+".json", function(data, status){        
     var obj = JSON.parse(data);
     alert(data);
      row.update({_children:obj});
    },"text");
    },
    columns:[
    {title:"Name", field:"name", width:200, responsive:0}, 
    {title:"Status", field:"status", align:"center",formatter:"tickCross",formatterParams:{allowEmpty:true},width:150, responsive:0},
    {title:"Acknowledge", field:"ack", align:"center",formatter:"tickCross",formatterParams:{allowEmpty:true}, width:150, responsive:0},
    {title:"Application",columns:[{title:"Application Performance",field:"apperf",formatterParams:{allowEmpty:true} ,align:"center",formatter:"tickCross",width:100,responsive:0}
    ,{title:"Application Availablity", align:"center",formatter:"tickCross",formatterParams:{allowEmpty:true},field:"appavail",width:100,responsive:0}]},
    {title:"Last Status Change",align:"center", field:"statchange", width:200, sorter:"datetime",sorterParams:{allowEmpty:true,format:"DD-MM-YYYY hh.mm AM/PM", alignEmptyValues:"top",},responsive:2},
    ],
}); 

Я хотел бы загружать дочерние узлы из URL каждый раз, когда дерево раскрывается.Однако, поскольку dataTreeStartExpanded имеет значение false и таблица перерисовывается после каждого обновления, я не могу просмотреть дочерние элементы и застрял с корневым узлом. Есть ли в любом случае для выполнения этой операции?Заранее спасибо!

1 Ответ

0 голосов
/ 11 февраля 2019

Расширение дерева данных не является асинхронным, поэтому было бы невозможно загрузить дочерние элементы, когда пользователь раскрывает дерево, поскольку он не будет ждать возврата запроса ajax перед отображением дочерних строк.Кроме того, элементы раскрытия отображаются только для строк, которые имеют дочерние элементы в первую очередь.

Вам необходимо включить дочерние строки в таблицу, когда данные загружаются в

...