如何返回所选行的jqgrid数据

时间:2014-09-13 18:44:48

标签: javascript jquery jqgrid

在JQGrid中

 var gridData=$("#SearchResults").jqGrid('getRowData')

上面的行为您提供了所有行的网格数据,有没有办法可以获取所选行的网格数据。

selRowId = myGrid.jqGrid ('getGridParam', 'selrow'),

上面给出了所选择的行ID,但我想要所有选定行的数据,因为它返回gridData但我只需要选择的那些

2 个答案:

答案 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

中修复