如何在jqGrid中选择行上的行对象?我需要实际的对象,而不是cellvalue。我已经阅读了文档,但找不到能给我行对象的方法。因为我使用自定义格式化程序,所以cellValue将不起作用。
答案 0 :(得分:10)
如果您实施custom formatter并希望获得与getCell或getRowData相关的单元格值,则还必须实现unformat功能。
在“我需要实际对象而不是单元格值”下,您的意思并不清楚。还不清楚您使用哪个datatype
,是否使用loadonce: true
选项,以及是否从服务器加载数据将以何种格式将数据发布到服务器。
如果您使用datatype: 'local'
或使用loadonce: true
,则会填写内部data
和_index
参数。要通过rowid
从网格获取原始数据,您可以使用
var rowData = this.p.data[this.p._index[rowid]]
或
var grid = $(this),
localdata = grid.jqGrid('getGridParam', 'data'),
indexes = grid.jqGrid('getGridParam', '_index'),
rowData = localdata[indexes[rowid]];
如果您不使用datatype: 'local'
或使用loadonce: true
并仅从服务器加载数据,则可以将表示数据的对象从服务器响应保存在变量(在对象中)中。 loadComplete
事件处理程序有一个data
参数,它是从服务器发布的原始数据。因此,您可以在对象中保存所需的数据(在mapid中通过rowid获取yut对象),并在onSelectRow
事件处理程序中使用它。
答案 1 :(得分:3)
您可以使用getInd和getLocalRow方法:
onSelectRow: function(rowid) {
var row = $(this).getLocalRow(rowid);
// do something with row
}
答案 2 :(得分:3)
在我的项目中:
ondblClickRow : function(rowid,iRow,iCol,e) {
$($("#completeDetail").getInd(rowid,true)).find(":first").click();
}
这将解决行增加找不到行
使用此功能 - > getInd(rowid,rowcontent)
。
当rowcontent设置为false(默认值)时,此方法返回由id=rowid
指定的网格表中的行的索引。如果rowcontent设置为true,则返回条目行对象。如果找不到rowid,则该函数返回false。