あなたが記述問題は、あなたのコードとjqGridのコードのバグの小さなエラーからミックス(行はthe placeで始まる参照)であるようです。
addParams
のように正しくeditParams
を設定しないと、コードの問題が発生します。正しい使用方法は、次のようになります。
$("#grid").jqGrid('inlineNav', '#grid_toppager', {
addParams: {
useDefValues: true,
addRowParams: {
keys: true,
extraparam: { _dokdata: FormData }
}
},
editParams: {
extraparam: { _dokdata: FormData }
},
add: true,
edit: false,
save: true,
cancel: true
});
function FormData() {
return JSON.stringify($("#_form").serializeArray());
}
jqGridのコードの現在のバージョンで問題が 保存]ボタンで使用しjqGrid私の意見である(hereを参照)editParams.extraparam
の設定のみが代わりに使用されていますaddParams.addRowParams.extraparam
のようなものの使用。私は、addParams.addRowParams
のパラメータにkeys: true
オプションを追加しました。inlineNav
です。したがって、ユーザがを入力して変更を保存する場合、jqGridの現在の実装(v 4.3.0)はになります。を入力し、その行を保存する場合はeditParams.extraparam
を使用しますナビゲータボタン。
更新済み:コードをテストし、jqGrid v。4.3.0にもう1つのバグが見つかりました。私はthe feature requestに$.jgrid.inlineEdit
の設定を紹介しました。これは他の非常に実用的な設定$.jgrid.edit
のように使用できますが、インラインでフォーム編集の場合は使用できます。機能リクエストは、jqGrid 4.3.0の に実装されていますが、実装にはバグがあります。
は1つが正しくバグ修正の後、
the demoからすべての作業を見ることができますどのように
o = $.extend(true, {}, settings, $.jgrid.inlineEdit, args[0]);
に33、117と304
o = $.extend($.jgrid.inlineEdit, settings, args[0]);
から行を交換する必要がありますバグを修正します。
更新2:上記の修正は、まだ間違っているthe fixと同じです。バグを修正するには、コードをさらに変更する必要があります。例えば32-36(editRow
の内部)線は、例えば線116-120
if(args[0] && typeof(args[0]) == "object" && !$.isFunction(args[0])) {
o = $.extend($.jgrid.inlineEdit, settings, args[0]);
} else {
o = settings;
}
(
saveRow
の内側)同様に
if(args[0] && typeof(args[0]) == "object" && !$.isFunction(args[0])) {
settings.keys = false; // keys is args[0] and it's an object
o = $.extend(true, {}, settings, $.jgrid.inlineEdit, args[0]);
} else {
o = settings;
}
を以下に
if(args[0] && typeof(args[0]) == "object" && !$.isFunction(args[0])) {
o = $.extend($.jgrid.inlineEdit, settings, args[0]);
} else {
o = settings;
}
から変更することができます
は
012に変更できます
とライン304
o = $.extend($.jgrid.inlineEdit, settings, args[0]);
が更新
o = $.extend(true, {afterrestorefunc: null}, $.jgrid.inlineEdit, args[0]);
に変更することができます:私は、 "削除" 問題についてtrirandするmy suggestionを掲載しました。修正hereを使用する同じデモを参照してください。
コードの前に '<! - language:lang-js - >'の位置が固定されています。これでコードがJavaScript固有の色でフォーマットされることがわかりました。追加のjqueryタグやjavascriptタグを使用する場合は、(<! - language:lang-js - >)を追加する必要はありません。 – Oleg