我正在开发一个使用 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 、我的 key 和选定的单元格内容。
但我还需要来自所选列的 name2、name3 和 name4 数据来生成第二份报告。
在JqGrid中是否可行。
感谢任何帮助。
最佳答案
您可以使用getCell
或getRowData
从基于rowid
的行中获取数据。如果您使用 datatype: "local"
或者如果您在网格 #Report1
中使用 loadonce: true
选项,那么您可以使用 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
一起工作你在网格 #Report1
中使用。
关于javascript - JqGrid:如何从 onCellSelect 事件中获取所有列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20512859/