Как загрузить подсеть статически?
Я не хочу использовать ajax для загрузки данных в моей сетке. Есть способ загрузить все данные в основную сетку и подсетки статически?
В примерах из документации jqGrid параметр subGridUrl
, нужно. Но я хочу что-то вроде:
var mydata = [ {
// ... some static code for data creation here
} ]
и используя mydata в параметре data
, но у subGrid нет этого параметра или чего-то еще.
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],
...
});
});