シナリオ処理の前に、サーバから受信したデータを変更する方法:jqGridで私が達成しようとしているものの
- は、私は、サーバーから
- Iループデータをいくつかのデータを取得し、追加を/いくつかのフィールドの値を変更し、データがグリッドに表示されている は
- ユーザがローカル 終了
- は、ユーザがグリッド全体のデータを送信データを編集しますサーバー
:
私はloadonce:true
、editurl:'clientArray'
とインライン編集でjqGridを作りました。 loadComplete
では、サーバーから受信したデータをループし、いくつかの値を追加します。外部ボタンは、.jqGrid('getGridParam','data')
を使用してグリッドデータを取得し、それをサーバーに送信するために使用されます。
loadComplete: function(data){
for(var i=0; i<data.rows.length; i++){
var row = data.rows[i];
grid.jqGrid('setRowData', row.id, {
missingData: 'someDefaultValue'
});
}
}
問題:loadComplete
イベントが発生し、ユーザーがグリッドのページを変更したり、検索を行います。その結果、彼によって編集されたデータが上書きされます。 beforeProcessing
イベントを代わりに使用しようとしましたが、は発生しません(編集:ローカルデータでテストすると機能しませんでしたが、loadonceで動作します)。私はdocumentationの他の適切なイベントを見つけることができませんでした。
thisデモでシナリオを再現しました。
質問:質問:サーバーからデータを受信した後、データを正しく変更し、ユーザーがページを変更したり検索したときに編集内容を上書きせずにローカルで編集できるようにするにはどうすればよいですか?
注:私は1つは、サーバからロードされたデータには、いくつかの変更を行うbeforeProcessing
の代わりloadComplete
を使用する必要があり、自由jqGrid 4.14