Как загрузить подсетку статически?

Я не хочу использовать ajax для загрузки данных в мою сетку. Есть ли способ загрузить все данные в основную сетку и подсетки статически?

В примерах из документации jqGrid параметр subGridUrl необходим. Но я хочу что-то вроде:

var mydata = [ {
// ... some static code for data creation here
 } ]

и используя mydata в параметре data, но у subGrid нет этого параметра или чего-то еще.


person Andersson Melo    schedule 06.02.2012    source источник
comment
пожалуйста, добавьте некоторые детали или код...   -  person Daniele B    schedule 06.02.2012
comment
Ну, есть два способа: 1) вы можете передать его как часть исходного запроса; или 2) сгенерировать его на стороне клиента (в зависимости от характера данных). Это тривиальный вопрос, если вы хотите избежать ajax, просто избегайте его.   -  person Ahmed Masud    schedule 06.02.2012


Ответы (1)


Если вы используете подсетку как сетку, вы должны создать новую сетку внутри из subGridRowExpanded обратного вызова. Обратный вызов получает rowid в качестве параметра. Итак, если вы хотите получить массив данных, который можно использовать в качестве параметра data подсетки, подсетка может быть определена с помощью datatype: 'local'.

Схема кода может быть примерно следующей:

var mainGridData = [
        {id: 'm1', ...},
        {id: 'm2', ...},
    ],
    subgridData1 = [
        {id: 's11', ...},
        {id: 's12', ...},
    ],
    subgridData2 = [
        {id: 's21', ...},
        {id: 's22', ...},
    ],
    subgridByMainGridId = {
        m1: subgridData1,
        m2: subgridData2
    };

    $('#mainGrid').jqGrid({
        datatype: 'local',
        data: mainGridData,
        ....
        subGrid: true,
        subGridRowExpanded: function(subgridId, rowId) {
            var subgridTableId = subgridId + "_t";

            $("#" + $.jgrid.jqID(subgridId)).html('<table id="' +
                subgridTableId + '"></table>');
            $("#" + $.jgrid.jqID(subgridTableId)).jqGrid({
                datatype: 'local',
                data: subgridByMainGridId[rowId],
                ...
            });
    });
person Oleg    schedule 06.02.2012