从jqGrid中检索原始行数据

Dav*_*veJ 11 javascript jquery json jqgrid

可以使用getRowData方法来检索单元格的当前内容,但这会在它通过格式化程序之前检索当前单元格内容而不是原始数据.

如何在应用格式转换之前检索原始内容?仅供参考我使用JSON填充表格.

小智 13

我不得不深入研究文档以提出解决方案,在原始上下文中看到它:jqGrid Data Manipulation,特别是标题为"User Data"的结尾部分.

首先,修改您的jsonReader实现,如下所示:

 jsonReader: {
      root: 'Data',
      page: 'Page',
      total: 'Total',
      records: 'Records',
      userdata : 'Data',
      repeatitems: false,
      id: 'Id'
 }
Run Code Online (Sandbox Code Playgroud)

请注意userdata选项设置为与root'Data'相同

在我的情况下,当用户选择一行时,我需要检索原始行数据.我实现如下:

 onSelectRow: function(rowid) {
                    processRow(rowid);
                }
Run Code Online (Sandbox Code Playgroud)

要检索进程行方法中的数据,我有以下内容:

var rowData = $("#resultGrid").getGridParam('userData')[rowId - 1];
Run Code Online (Sandbox Code Playgroud)

其中#resultGrid是对我的jqGrid的引用.

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

有几点需要注意:

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

  • +1现在,您需要将root和userdata值设置为"rows",而不是"Data",但除此之外,它还适用于最新版本. (3认同)