如何在其中任何一个进行更改后重新加载页面上的所有jqgrids

时间:2016-04-05 16:02:17

标签: java jquery jquery-ui jqgrid

我在页面上有几个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并没有重新加载/刷新。我该怎样实现这个?

1 个答案:

答案 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, "", ""];
}