我在页面上有几个jqgrids ..现在我想在我更新任何一个记录后重新加载两个jqgrids。
这是我的身体..
{
if (response.responseText === "OK")
{
alert("Update is succefully");
alert(this);
$(this).jqGrid("setGridParam", {datatype: 'json'});
return [true, "", ""];
alert("#list1");
$("#list1").jqGrid("setGridParam", {datatype: 'json'});
return [true, "", ""];
// $(this).trigger('reloadGrid');
}
else {
alert("Update failed");
return [true, "", ""];
}
}
以下是第一个jqgrid的提交后函数的脚本...
afterSubmit:function(response,postdata)
function getCookie(name)
{
return document.cookie.split(";").map(function(a){a=a.split("=");return a[0].trim()==name?a[1]:null;}).compact().first();
}
现在使用这段代码我的第一个jqgrid确实会在更新数据后重新加载并在jqgrid中显示更新的数据,但是第二个jqgrid有id#list1并没有重新加载/刷新。我该怎样实现这个?
答案 0 :(得分:1)
目前还不清楚你究竟意味着哪些变化。如果您使用free jqGrid分叉,那么从服务器重新加载网格的推荐方法(如果它具有loadonce: true
选项)将使用.trigger("reloadGrid", {fromServer: true})
或$("#list").trigger("reloadGrid", [{fromServer: true, current: true, page: 1}]);
(请参阅{ {3}}或the answer)。因此,您可以执行以下操作:
$(".ui-jqgrid-btable").trigger("reloadGrid", {fromServer: true});
如果您需要在afterSubmit
之类的回调中触发重新加载网格,那么我建议您将上述代码包装在setTimeout
中以允许完成afterSubmit
的处理在重新加载网格之前:
afterSubmit: function () {
setTimeout(function () {
$(".ui-jqgrid-btable").trigger("reloadGrid", {fromServer: true});
}, 50);
return [true, "", ""];
}