使用inlineNav刷新网格

时间:2012-04-10 12:51:08

标签: jquery-plugins jqgrid

我使用inlineNav如下:

var inlineparams = { 
    addParams: {useFormatter:false},
    editParams: {extraparam: { 
                 "action": "ajaxgrid",
                 "subaction": "jqedit", 
                 "tableid": "sysbuglist",
                 "sessionid":"fd7c74d8-d3cb-102f-bd56-0015171f0bcc" 
             }},
    add:true,
    edit:true,
    save:true,
    cancel:true,
    aftersavefunc:reloadGrid};

$("#navgrid").jqGrid("inlineNav","#navgrid_bottompager", inlineparams);

所以,我正在使用bottompager上的添加,编辑,保存,取消按钮。

问题:如何在保存到服务器后获得控制权?保存到服务器运行良好,我只想在保存后刷新网格。

1 个答案:

答案 0 :(得分:2)

source code for inline editing中,您可以看到aftersavefunc中没有明确的inlineNav,无论是在选项中还是在保存按钮的回调中:

if(o.save) {
    $($t).jqGrid('navButtonAdd', elem,{
        ...
        onClickButton : function () {
            var sr = $t.p.savedRow[0].id;
            if(sr) {
                ...
                if( $($t).jqGrid('saveRow', sr, o.editParams) ) {
                    $($t).jqGrid('showAddEditButtons');
                }
            } 
        }

但是,您可以将aftersavefunc作为editParams的一部分传递:

var inlineparams = { 
    addParams: {useFormatter:false},
    editParams: {extraparam: { 
                     "action": "ajaxgrid",
                     "subaction": "jqedit", 
                     "tableid": "sysbuglist",
                     "sessionid":"fd7c74d8-d3cb-102f-bd56-0015171f0bcc"},
                 aftersavefunc: reloadGrid},
    ...

应该这样做。请注意,aftersavefunc以及edit都会调用save,因为这两个操作都支持此回调。