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