从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的引用。

然后,在应用任何格式之前,这将返回绑定到该行的原始数据。

有几点需要注意:

  1. 在我的情况下,网格被分页,因此结果集永远不会超过10个项目,因此’userdata’不会变得太大
  2. 在服务器端执行排序,以便索引rowId始终从’userData’返回正确的值
  3. 虽然在jsonReader上作为选项引用的’userdata’都是小写,但要使用getGridParam检索它,您需要将其引用为’userData’

这是从一行中检索单元格数据的方法。

 var rowData = jQuery(this).getRowData(rowId); var colData = rowData['columnName']); 

columnName是表的列名。