1

我有一个 jqGrid,它使用内联编辑来编辑单行,并使用上的图标navGrid来处理添加和删除。它工作得很好,除了在添加对话框中单击提交按钮后,添加了行,但对话框没有关闭。我已将closeAfterAdd: trueand放置closeAfterEdit: true在适当的位置(AFAIK),但添加对话框在提交后并没有消失。我确定我遗漏了一些简单的东西,但我已经搜索了 wiki,似乎无法弄清楚遗漏了什么。以下是我的脚本代码:

$(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 语句时,它们会出现在控制台中,所以我知道我正在进入代码。

谢谢。

4

1 回答 1

1

您应该尝试使用最新的 4.5.2 版本的 jqGrid。4.5.0 版包含一些使用closeAfterAdd和的错误clearAfterAdd。该错误已在 4.5.1 版本中修复(请参阅此处)。

于 2013-05-21T21:16:38.770 回答