我正在开发一个使用JqGrid生成报告的ASP.NET mvc项目。为了生成报告,我生成了2个不同的报告。将根据第一份报告的值生成第二份报告。 为获取列值,我正在使用JqGrid的OnCellSelect事件,
事件:
$('#Report1').jqGrid({
...
..
colNames: ['name1','name2','name3','name4','name5','name6','name7'],
colModel: [
{....},
{ ... },
{ ...},
{...},
{ ...},
{ ...},
{ ... }
],
jsonReader: {
root: 'DD_data',
id: 'name1',
repeatitems: false
},
pager: $('#pager'),
//Event fires when clicked on name7
onCellSelect: function (rowid, index, contents, event) {
//Code for generating Second Report based on First report data//
$('#Report2').jqGrid({
...
...
});
}
});
在Cell Select事件中,我只获得rowid,我的密钥和选定的单元格内容。
但我还需要所选列中的name2,name3和name4数据来生成第二个报告。
是否可以在JqGrid。
感谢任何帮助。
答案 0 :(得分:8)
您可以使用getCell
或getRowData
根据rowid
从该行获取数据。如果您使用datatype: "local"
或在网格loadonce: true
中使用#Report1
选项,那么您可以使用getLocalRow
,它比getRowData
有一些优势,但仅适用于数据保存在内部data
参数内部。仅当datatype
不是"json"
或"xml"
或者"json"
或"xml"
时,才会填充参数,但会使用loadonce: true
选项。
您可以使用的最简单的代码是
onCellSelect: function (rowid) {
var rowData = $(this).jqGrid("getRowData", rowid);
// now you can use rowData.name2, rowData.name3, rowData.name4 ,...
}
getLocalRow
的使用可能会有一些优势(包括性能优势),但您应该验证它是否与您在网格中使用的datatype
和loadonce
一起使用{{1} }。