javascript - Jqgrid 检索所有数据但有奇怪的行为

标签 javascript jquery jqgrid

在 jqgrid 中,我使用这部分代码从 jqgrid 表中获取所有数据:

var allRowsInGrid = $('#table_outgoing_calls_report').jqGrid('getGridParam','data');

当我console.log allRowsInGrid时,它显示所有数据并显示表数据计数的实际长度。但后来我尝试使用这个数组(allRowsInGrid),它只显示我在屏幕上看到的数据。此外,如果我尝试 console.log allRowsInGrid.length 它会显示我看到的数据长度。 我使用 json 数据类型和 loadonce: true。尝试了一切,但没有任何效果。 这段代码:

 var allRowsInGrid = $('#table_outgoing_calls_report').jqGrid('getGridParam','data');
        console.log(allRowsInGrid);
        console.log(allRowsInGrid.length);

显示: enter image description here

有谁知道这怎么可能吗?

最佳答案

问题不在于您做了什么,而是何时以及在何处您使用'getGridParam'、'data'。您可以在首先从服务器加载数据之后使用数据。例如,您可以在 loadComplete 内部或 beforeProcessing 回调内部使用。我建议您阅读the old answer此外,它还描述了 loadCompletegridComplete 之间的差异。在大多数情况下,gridComplete 并不是一个好的选择。

此外,loadComplete 不仅会在第一次从服务器加载后被调用。稍后在每次本地排序、分页和过滤/搜索时都会调用它。如果从服务器加载数据后需要执行一些操作,那么 beforeProcessing 回调是很好的选择。它包含在 jqGrid 处理数据之前从服务器返回的完整数据。例如,我们可以修改或扩展 beforeProcessing 回调内部的数据,jqGrid 将看到修改后的数据,就好像它是从服务器返回的一样。

还有一个选项 - 将一些代码放在 if ($(this).jqGrid("getGridParam", "datatype") !== "local") { 内的 loadComplete 中... }。它允许在处理从服务器加载的数据并显示第一页之后执行一些操作。

关于javascript - Jqgrid 检索所有数据但有奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50366639/

相关文章:

javascript - ng-init 最初没有获取范围值

javascript - 从 json 创建一个列表返回 [object Object] 并且只返回最后一个 li

javascript - 使用 JavaScript 函数保存表单并通过浏览器向后导航

javascript - 框架集共享一个JavaScript库

asp.net-mvc - ASP.net MVC - 强类型对象来表示我传递给 View 的 Json 对象

javascript - 热衷于在 react native 平面列表上重叠按钮?

jquery - Bootstrap 在本地不工作

javascript - 如何将幻灯片放映动画添加到我的侧边代码

jquery - 复选框编辑在 jqgrid 中不起作用

jqgrid - 如何更改jqgrid分页样式