简体   繁体   English

编辑并保存任何行后重新加载JqGrid表

[英]JqGrid tables reloading after editing and saving any row

I have 4 jqGrid tables in a php file and passsing different json array for the each grid tables.The data which i am displaying on grid are from 1 table with different sql conditions. 我在一个php文件中有4个jqGrid表,并为每个网格表传递了不同的json数组。我在网格上显示的数据来自具有不同sql条件的1个表。

I am using inline editing functionality for all the grids and when i edit and save the row from table1, i want all the grids should get refresh so that if the row which was previously edited is exists in next tables that should get vanished automatically. 我正在为所有网格使用内联编辑功能,当我编辑并保存table1中的行时,我希望所有网格都应刷新,以便如果先前编辑的行存在于下一个表中,则该表将自动消失。 I want to reload the all the grid tables after editing any row in any table. 我要在编辑任何表中的任何行后重新加载所有网格表。 I have written the following code: 我写了以下代码:

<table id="jqgrid"></table>
<div id="pjqgrid"></div>

<table id="jqgrid1"></table>
<div id="pjqgrid1"></div>

<table id="jqgrid2"></table>
<div id="pjqgrid2"></div>

<table id="jqgrid3"></table>
<div id="pjqgrid3"></div>

<script>
pageSetUp();
var myEditOptions = {
    keys: true,
    successfunc: function (response) {
       // alert(JSON.stringify(response)); 
        var msg=response.responseText;
        var n =msg.search("Updated");
        //alert(n);
        if(n>=0)
        {
            $(".inner").html("<div class='alert alert-success fade in'>     <button class='close' data-dismiss='alert'>X</button><i class='fa-fw fa fa-thumbs-up'></i>  "+msg+" </div>");
        } 
        else
        {
            $(".inner").html("<div class='alert alert-danger fade in'><button class='close' data-dismiss='alert'>X</button><i class='fa-fw fa fa-thumbs-down'></i>  "+msg+" </div>");      
        }
        $("#jqgrid").trigger('reloadGrid');
        $("#jqgrid1").trigger('reloadGrid');
        $("#jqgrid2").trigger('reloadGrid');
        $("#jqgrid3").trigger('reloadGrid');
        jQuery("#jqgrid").jqGrid('resetSelection');
        jQuery("#jqgrid1").jqGrid('resetSelection');
        jQuery("#jqgrid2").jqGrid('resetSelection');
        jQuery("#jqgrid3").jqGrid('resetSelection');
        return true;     
    },
    errorfunc: function (rowid,response) {
        //alert(rowid);
    },
    afterrestorefunc:function (rowid,response) {
        jQuery("#jqgrid").jqGrid('resetSelection');
    }

};
</script>

It would you recommend to use aftersavefunc instead of successfunc for reloading of the grids. 建议您使用aftersavefunc而不是successfunc重新加载网格。 Moreover you should place .trigger("reloadGrid") inside of setTimeout . 此外,您应该将.trigger("reloadGrid")放置在setTimeout It will allows to finish processing of editing before starting reloading: 它将允许在开始重新加载之前完成编辑过程

var myEditOptions = {
    keys: true,
    aftersavefunc: function () {
        setTimeout(function () {
            $("#jqgrid,#jqgrid1,#jqgrid2,#jqgrid3").trigger("reloadGrid");
        }, 50);
    },
    ...
};

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM