1

jqGrid で新しい行の追加と行の削除をテストしようとしていますが、行の追加/削除後に、グリッドが更新されて新しい行が表示されないか、削除された行が削除されないことがわかりました。サーバー側の部分はまだ追加/削除用に配置されていないため、データをグリッドにロードするために使用したのと同じ URL を editurl にフィードしました。

.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);
            }
4

1 に答える 1

1

ダミーURLを使用すると、おそらく HTTP POST 要求に応答しません。オプションを使用することで問題を解決できmtype: "GET"ます。この場合、次のような同じサイトの既存のサーバー URL を使用できます"/"

.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、次のような既存の URL を使用できます。editurl: "/"

于 2012-06-08T18:15:30.537 に答える