在JQGrid中
var gridData=$("#SearchResults").jqGrid('getRowData')
上面的行为您提供了所有行的网格数据,有没有办法可以获取所选行的网格数据。
selRowId = myGrid.jqGrid ('getGridParam', 'selrow'),
上面给出了所选择的行ID,但我想要所有选定行的数据,因为它返回gridData但我只需要选择的那些
答案 0 :(得分:14)
这很简单。 getRowData
方法的第二个可选选项参数是请求数据的行的rowid(请参阅the documentation)。所以你可以使用
var selRowId = myGrid.jqGrid("getGridParam", "selrow");
先获取最后一个选定的rowid,然后按
获取该行的数据var rowData = myGrid.jqGrid("getRowData", selRowId);
如果您使用datatype: "local"
或某些远程datatype
("xml"
或"json"
),但使用loadonce: true
,则jqGrid会在{{1}内部保留数据数组。在使用data
时,使用getLocalRow
方法更有效:
getRowData
如果使用var rowData = myGrid.jqGrid("getLocalRow", selRowId);
选项,则jqGrid支持所选rowid的multiselect: true
数组,您可以在循环中获取所有必需的数据:
selarrrow
答案 1 :(得分:0)
如果您尝试从onSelectRow
等网格事件中获取数据,则可以忽略Oleg的第一部分答案,并获取如下数据:
myGrid.jqGrid({
... // Grid create options ->
datatype: 'local',
data: gridData,
// <--
onSelectRow: function(id){
data = $(this).jqGrid("getLocalRow", id);
// if you need actual content of the cells
// data = myGrid.jqGrid("getRowData", id);
}
});
显然这仅适用于单行,但如果意图是行,我相信Oleg的答案是唯一的选择。
注意:这在版本4.5.4及以下版本中不起作用,但它已在oleg's free jqgrid 4.15.2
中修复