senario是这样的: 我的脚本每秒都会添加一个带有“setInterval”函数的新记录:
$("#grid").jqGrid('addRowData', id, data, 'first').trigger("reloadGrid");
假设在此脚本添加新记录时,用户应用了一些过滤器,但过滤器不适用于新的记录,实际上它只适用于在过滤操作之前添加的记录,因此我的网格显示意外结果。
我网格的关键选项:
...
datatype: "local",
data: gridData, //a local array
...
答案 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 });
保存当前选定的行/行。