从jqGrid中检索原始行数据
可以使用getRowData方法来检索单元格的当前内容,但是在它通过格式化程序之前,它会检索当前单元格内容而不是原始数据。
如何在应用格式转换之前检索原始内容? 仅供参考我使用JSON填充表格。
我不得不深入研究文档以提出解决方案,在原始上下文中看到它: jqGrid Data Manipulation ,特别是标题为“User Data”的结尾部分。
首先,修改jsonReader实现,如下所示:
jsonReader: { root: 'Data', page: 'Page', total: 'Total', records: 'Records', userdata : 'Data', repeatitems: false, id: 'Id' }
请注意userdata选项设置为与root’Data’相同
在我的情况下,我需要在用户选择行时检索原始行数据。 我实现如下:
onSelectRow: function(rowid) { processRow(rowid); }
要检索进程行方法中的数据,我有以下内容:
var rowData = $("#resultGrid").getGridParam('userData')[rowId - 1];
其中#resultGrid是对我的jqGrid的引用。
然后,在应用任何格式之前,这将返回绑定到该行的原始数据。
有几点需要注意:
- 在我的情况下,网格被分页,因此结果集永远不会超过10个项目,因此’userdata’不会变得太大
- 在服务器端执行排序,以便索引
rowId
始终从’userData’返回正确的值 - 虽然在jsonReader上作为选项引用的’userdata’都是小写,但要使用
getGridParam
检索它,您需要将其引用为’userData’
这是从一行中检索单元格数据的方法。
var rowData = jQuery(this).getRowData(rowId); var colData = rowData['columnName']);
columnName是表的列名。