поддержка неизвестного количества уровней иерархии в jqGrid - PullRequest
1 голос
/ 18 декабря 2011

Я использую jqGrid, и мне нужно отобразить сетку дерева с неизвестным количеством уровней (подсеток).

В демонстрациях jqGrid есть пример иерархической сетки, но это хорошо, только если вы знаете числоиз уровней заранее, в этом случае он поддерживает только 2 уровня.

Вот код: Пример подсетки jqGrid

Любая идея, как поддерживать неизвестное количество узлов деревавпереди?то есть иногда это может быть 2 уровня, иногда 1 (только корневой) уровень, иногда 4 уровня и так далее ...

Спасибо

1 Ответ

0 голосов
/ 13 ноября 2017

Я делаю это.

$("#TopLevelGrid").jqGrid({
    ...        
    subGrid: true,
    subGridRowExpanded: expandScript,
    ...
});
// Append information about the level to the TopLevelGrid html-table element
$("#TopLevelGrid").data("currentLevelId", 1);
$("#TopLevelGrid").addClass("MyGrid");      // Ensure that html-table has class MyGrid

function expandScript(parentDivId, parentRowId)
{
        ...
        var parentTable = $("#" + parentDivId").closest("table.MyGrid");
        var parentLevelId = $(parentTable).data("currentLevelId");

        var currentLevelId = parentLevelId + 1;                     // calculate the ID of the current level
        var currentLevelHasChildLevel = true;                       // calculate if the current level has a childLevel
        // Append a table-element which will hold the new grid;     // the same as the jqGrid-subgrid example
        $('#' + parentDivId).append('<table class=\"MyGrid\" id=\"ChildGrid_' + currentLevelId + '\"></table><div id=\"Pager_ChildGrid_' + currentLevelId + '\"></div><br />');
        $('#ChildGrid_' + currentLevelId ').jqGrid({
            ...
            subGrid: currentLevelHasChildLevel,
            subGridRowExpanded: expandScript,                       // recursive call to expandScript function
            ...
        });
        // Save the currentLevelId as custom-data element bound to the html-table element which will also hold the child-grid
        $("#ChildGrid_" + currentLevelId).data("currentlevelid", currentLevelId);
        ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...