Search code examples
jqgrid

Reload grid after add a new row in jQgrid Inline edit using inlineNav


I have been using inlineNav method for inline add as follows.

jQuery("#mygrid").jqGrid("inlineNav", "#mygrid_pager1",{"addParams":{"position":"last","addRowParams":{"keys":true}}});

It works great. Now, I need to reload the grid after adding a new row. I've tried the following and it didn't work.

jQuery("#mygrid").jqGrid("inlineNav", "#mygrid_pager1",{"addParams":{"position":"last","addRowParams":{"keys":true, "successfunc":"function(id){$("mygrid").trigger("reloadGrid");"}}});

Any pointers are appreciated!


Solution

  • First of all the value of successfunc should be the function and not the string (see in your current code "successfunc":"...")

    I would recommend you to try to add the same settings to both addParams.addRowParams and to editParams options of inlineNav. Moreover I would recommend you to place $(this).trigger("reloadGrid") from successfunc inside of setTimeout to be sure that reloading will be started after the standard processing of saving of the row.

    So the code could be about the following:

    var editOptions = {
            keys: true,
            successfunc: function () {
                var $self = $(this);
                setTimeout(function () {
                    $self.trigger("reloadGrid");
                }, 50);
            }
        };
    
    $("#mygrid").jqGrid("inlineNav", "#mygrid_pager1", {
        addParams: {
            position: "last",
            addRowParams: editOptions
        },
        editParams: editOptions
    });