如何让jqGrid在提交后关闭添加对话框

时间:2013-05-21 21:07:41

标签: jqgrid

我有一个jqGrid,它使用内联编辑来编辑单行,并使用navGrid上的图标来处理添加和删除。它工作正常,只是在单击Add Dialog中的Submit按钮后,该行被添加,但对话框没有关闭。我已将closeAfterAdd: truecloseAfterEdit: true放在适当的位置(AFAIK),但添加对话框在提交后不会消失。我确信我遗漏了一些简单的东西,但是我已经搜索了维基,似乎无法找出遗漏的东西。以下是我的脚本代码:

$(document).ready(function () {         
    var lastsel;
    var idToSelect;
    jQuery("#grdEnvironments").jqGrid({
        url: '/Artifacts/GetEnvrionments',
        datatype: 'json',
        mType: 'GET',
        colNames: ['', 'Name'],
        colModel: [
            { name: 'TCEnvironmentId', key: true, index: 'TCEnvironmentId', sortable: false, hidden: true, editable: false },
            { name: 'Name', index: 'Name', width: 150, editable: true, editrules: { required: true } },
        ],
        pager: '#grdEnvironmentsPager',
        rowNum: 15,
        gridview: true,
        loadui: 'block',
        width: 300,
        height: 250,
        viewrecords: true,
        editurl: '/Artifacts/EditEnvrionment',
        caption: 'Various Envrionments',
        onSelectRow: function (id) {
            if (id && id != lastsel) {
                $(this).restoreRow(lastsel);
                $(this).editRow(id, {
                    keys: true,
                    closeAfterEdit: true
                });
                lastsel = id;
            }
        },
        loadComplete: function() {
            if (idToSelect) {
                $(this).jqGrid('setSelection', idToSelect);
                //console.log('In load Complete');
                //console.log(idToSelect);
                idToSelect = undefined;
            }
        }
    });
    jQuery('#grdEnvironments').jqGrid('navGrid', '#grdEnvironmentsPager',
        { add: true, edit: false, del: true, search: false, view: false },
        {/* Edit Options */
            closeAfterEdit: true
        },
        {/* Add Options */
            closeAfterAdd: true,
            afterSubmit: function(response)  {
                idToSelect = response.responseText;
                //console.log('In after submit');
                //console.log(idToSelect);
                return [true,'',idToSelect];
            }
        });
});

任何帮助都表示赞赏 - 这不是一个显示阻止,但我想得到记录的行为。顺便说一句 - 当我注释掉console.log语句时,它们出现在控制台中,所以我知道我正在进入代码。

感谢。

1 个答案:

答案 0 :(得分:1)

您应该尝试使用jqGrid的最后一个4.5.2版本。版本4.5.0包含一些使用closeAfterAddclearAfterAdd的错误。该错误已在4.5.1版本中修复(请参阅here)。