【问题标题】:jqGrid getData only returns data for current pagejqGrid getData 只返回当前页面的数据
【发布时间】:2010-07-22 08:53:20
【问题描述】:

希望这是一个快速的!

我有一个使用“clientSide”(本地)数据的可编辑网格,我现在希望在通过 jQuery.ajax 调用将数据发送到服务器之前迭代 javascript 中的所有行并自己处理/打包数据。

问题在于,出乎意料(至少对我而言),使用以下代码只检索当前可见网格页面的行!如何获取网格中的所有行(即我有四页,每页 10 条记录,当我在第 1 页时,此代码仅返回前 10 条)?它们必须存在于客户端的某个地方,因为我可以四处翻页并编辑行,并且数据在不调用服务器的情况下被持久化! :)

    cacheCONF = [];
    var rows= $('#myGrid').getRowData();  //<--Need to get ALL rows here!!!
    var cacheRowID = 0;
    for (var row in rows) {
        if (rows[row].Action == 'Yes') {
            cacheCONF.push({ RowID: rowID, System: rows[row].System, Action: rows[row].Action, Account: '-', Required: '-'  });
            rowID++;
        }
    }

【问题讨论】:

  • 通过临时更改页面大小找到了解决方法。希望有一个更“正式”的解决方案。代码是: var pageSize = $('#myGrid').getGridParam('rowNum'); $('#myGrid').setGridParam({ rowNum: 10000 }).trigger("reloadGrid");然后 getRowData 将获得最多 10000 行(因此将其设置为高于 yuor max possible rows)。然后,您可以使用 pageSize 将页面大小设置回用户的偏好。

标签: jqgrid


【解决方案1】:

Tony 的解决方案:

var mydata = $("#grid").jqGrid('getGridParam','data');

【讨论】:

  • 但这在排序然后调用该函数时不会返回正确的数据排序顺序,还有其他函数吗?
  • 不错的答案。唯一的问题是,如果您在加载表格时使用 JQGrid 中的格式化程序函数格式化了数据,那么这些新值将会丢失。
【解决方案2】:

遇到了类似的问题,下面是我最终使用的

var data = $("#table-id").jqGrid('getGridParam', 'data');
for (var i = 0; i < data.length; i++) {
    var f_name = data[i].FirstName;
    var l_name = data[i].LastName;
    // blah... blah..
}

参考:http://www.trirand.com/blog/?page_id=393/help/jqgrid-getdata-only-returns-data-for-current-page/

【讨论】:

  • 您的解决方案对我有用。 getRowData() 由于某种原因没有返回网格的最后一行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-13
  • 1970-01-01
  • 2016-07-25
  • 2021-10-03
相关资源
最近更新 更多