jqGrid:navGrid reloadAfterSubmit在editurl无效时不添加新行

时间:2012-06-08 16:17:41

标签: jqgrid

我正在尝试测试添加新行并删除jqGrid中的行,我发现在添加/删除行后,网格不会刷新以显示新行或删除已删除的行。服务器端部件还没有用于添加/删除,所以我只是向editurl提供了用于将数据加载到网格中的相同URL。

.navGrid('#' + id + '-pager',
            {addtext: 'Add Code Value', deltext: 'Delete Code Value', edit:false,add:true,del:true,search:false, refresh:false},
            {closeAfterAdd: true, reloadAfterSubmit: true} /* Edit options */,
            {closeAfterAdd: true, reloadAfterSubmit: true} /* Add options */,
            {reloadAfterSubmit: true} /* Delete options */);

我在这里遗漏了什么吗?我以为reloadAfterSubmit应该用添加/删除的行更新网格?

感谢。

已编辑:我的自定义添加功能,这是不必要的复杂功能(注意:这应该只是客户端添加)

addfunc = function() {
//Find dirty unsaved row if any and add to the grid before adding empty row

                var dirtyRow = jQuery('#' + id).find('tr[editable]');
                var dirtyRowId = dirtyRow.attr('id');
                if (dirtyRow.length > 0) {
                    dirtyRow.addClass('data-isDirty', true);
                    var rowData = jQuery('#' + id).jqGrid('getRowData', dirtyRowId);
                    jQuery('#' + id).jqGrid('addRowData', rowId, dirtyRowId);
              //The row when added to the grid should not be editable but a normal row

                dirtyRow.find('input').each(function() {
                        var text = jQuery(this).attr('value');
                        jQuery(this).replaceWith(text);
                    });
                }
                var rowId = Math.floor(Math.random()*1000) + 'add_new';
                jQuery('#' + id).jqGrid('addRowData', rowId, that.getEmptyRow(colModel), 'first');
                var firstRowId = jQuery('#' + id).jqGrid('getDataIDs')[0];

                            //Add an empty editable row at the top
                jQuery('#' + id).jqGrid('editRow', firstRowId);
            }

1 个答案:

答案 0 :(得分:1)

如果您使用 dummy URL,那么它可能不会回复HTTP POST请求。您可以使用mtype: "GET"选项解决问题。如果您可以使用来自同一网站的任何现有服务器网址,例如"/"

.navGrid('#' + id + '-pager',
    {addtext: 'Add Code Value', deltext: 'Delete Code Value',
        edit:false,add:true,del:true,search:false, refresh:false},
    {mtype: "GET", closeAfterAdd: true, reloadAfterSubmit: true} /* Edit options */,
    {mtype: "GET", closeAfterAdd: true, reloadAfterSubmit: true} /* Add options */,
    {mtype: "GET", reloadAfterSubmit: true} /* Delete options */);

作为jqGrid的editurl参数,您可以使用任何现有的网址,例如editurl: "/"