在JQgrid中添加新记录后筛选行

时间:2015-04-27 12:19:14

标签: javascript jquery json jqgrid

senario是这样的: 我的脚本每秒都会添加一个带有“setInterval”函数的新记录:

$("#grid").jqGrid('addRowData', id, data, 'first').trigger("reloadGrid");

假设在此脚本添加新记录时,用户应用了一些过滤器,但过滤器不适用于新的记录,实际上它只适用于在过滤操作之前添加的记录,因此我的网格显示意外结果。

我网格的关键选项:

...
datatype: "local",
data: gridData, //a local array
...

1 个答案:

答案 0 :(得分:1)

这个问题在我看来很容易。你几乎都做对了,但你应该明白并非所有的jQuery方法都返回原始的jQuery对象。例如,$("#grid").jqGrid("getGridParam", "selrow")会返回所选行的rowid或null,因此$("#grid").jqGrid("getGridParam", "selrow").trigger("reloadGrid");将不正确。

方法addRowData返回布尔值,该值通知是否成功添加了行。所以你必须修改代码

$("#grid").jqGrid("addRowData", id, data, "first");
$("#grid").trigger("reloadGrid");

var $grid = $("#grid");
$grid.jqGrid("addRowData", id, data, "first");
$grid.trigger("reloadGrid", { current: true });

保存当前选定的行/行。