1

インライン編集を使用して単一行を編集し、アイコンを使用してnavGrid追加と削除を処理する jqGrid があります。[追加] ダイアログから [送信] ボタンをクリックした後、行が追加されますが、ダイアログが閉じないことを除いて、問題なく動作しています。closeAfterAdd: trueとを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

jqGrid の最後の 4.5.2 バージョンで試してみてください。バージョン 4.5.0 には、 と の使用に関するいくつかのバグが含まれていcloseAfterAddますclearAfterAdd。このバグはバージョン 4.5.1 で修正されています (こちらを参照)。

于 2013-05-21T21:16:38.770 に答える