【问题标题】:Retrieving original row data from jqGrid从 jqGrid 中检索原始行数据
【发布时间】:2010-12-19 18:57:24
【问题描述】:

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

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

【问题讨论】:

    标签: javascript jquery json jqgrid


    【解决方案1】:

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

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

    columnName 是表的列名。

    【讨论】:

    • 获取内容 - 而不是值;
    【解决方案2】:

    我不得不深入研究文档以提出解决方案,要在其原始上下文中查看它,请访问此处: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 个项目,因此“用户数据”不会变得太大
    2. 排序在服务器端执行,因此索引rowId 将始终从“userData”返回正确的值
    3. 虽然 jsonReader 上作为选项引用的 'userdata' 都是小写字母,但要使用 getGridParam 检索它,您需要将其引用为 'userData'

    【讨论】:

    • +1 现在您需要将 root 和 userdata 值设为“rows”,而不是“Data”,但除此之外,它在最新版本中效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    • 2021-07-06
    • 1970-01-01
    相关资源
    最近更新 更多