具有“本地”数据的jqGrid子网格

我试图让我的子网格与本地数据工作。 然而,当我点击展开,我只是得到一个像框架的加载框试图从某个地方拉数据。 我假设我不需要一个subGridUrl因为主网格的数据types是datatype:'local' 。 还有什么我应该做的?

有没有直接的方式来定义本地数据的子网格,但你可以相对容易地使用subGridRowExpanded ( 子网格作为网格 )实现相同的行为。 我们需要做的只是从网格的rowid中获取一些内部结构的子网格数据。 例如,如果你将有子网格地图

 var myGridData = [ // main grid data {id: "m1", col1: "11", col2: "12"}, {id: "m2", col1: "21", col2: "22"} ], mySubgrids = { m1: [ // data for subgrid for the id=m1 {id: "s1a", c1: "aa", c2: "ab", c3: "ac"}, {id: "s1b", c1: "ba", c2: "bb", c3: "bc"}, {id: "s1c", c1: "ca", c2: "cb", c3: "cc"} ], m2: [ // data for subgrid for the id=m2 {id: "s2a", c1: "xx", c2: "xy", c3: "xz"} ] }; 

subGridRowExpanded里面,你可以用下面的代码创build子网格:

 $("#grid").jqGrid({ datatype: 'local', data: myGridData, colNames: ['Column 1', 'Column 2'], colModel: [ { name: 'col1', width: 200 }, { name: 'col2', width: 200 } ], ... subGrid: true, subGridRowExpanded: function (subgridDivId, rowId) { var subgridTableId = subgridDivId + "_t"; $("#" + subgridDivId).html("<table id='" + subgridTableId + "'></table>"); $("#" + subgridTableId).jqGrid({ datatype: 'local', data: mySubgrids[rowId], colNames: ['Col 1', 'Col 2', 'Col 3'], colModel: [ { name: 'c1', width: 100 }, { name: 'c2', width: 100 }, { name: 'c3', width: 100 } ], ... }); } }); 

演示现场展示结果:

在这里输入图像描述