从jqGrid中检索原始行数据

时间:2009-11-24 07:06:49

标签: javascript jquery json jqgrid

可以使用getRowData方法检索单元格的当前内容,但这会检索当前单元格内容,而不是原始数据,然后才能通过格式化程序。

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

2 个答案:

答案 0 :(得分:13)

我不得不仔细阅读文档以提出解决方案,在其原始上下文中查看它:jqGrid Data Manipulation,特别是标题为“用户数据”的结尾部分。

首先,按如下方式修改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'

答案 1 :(得分:-5)

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

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

columnName是表的列名。