2011-11-13 12 views
0

jqgrid with clientArrayオプションを使用して編集しています;私のグリッドはページングを使用しています。 jqgrid getChangedCellsメソッドは、変更されたサーバーからのデータの可能性を考慮してページを数回変更した後でも、正しい変更された行を返しますか?たとえば、ページが戻った場合にグリッドに表示されるサーバーから新しい行を使用できます。 rowIdの競合が発生していませんか?新しいRowIdsは、新しいデータが利用可能になる前のものとは異なる行を指していますか? 私はいつも私のサーバーデータをオートインクリメントプライマリキーで注文できると思いますか?..clientArray(clientside)を編集用に使用すると、jqgridのgetChangedCellsメソッドにページングが及ぼす影響は何ですか?

答えて

0

今日は実験​​で見つかった;ページング(サーバー側)jqgridはgetChangedCellsの結果をクリアします。私は、getChangedCells配列を格納するユーティリティ関数を作成して、ページングを超えて存続させる必要がありました。イムは、これをやって ので、私は私が持っているようなもの別途jqgridオプション をすべての変更を提出することができます:

('#grid').jqgrid({ 
    .... 
    cellEdit:true, 
    cellSubmit:'clientArray', 
    colModel: [ {...,editable:true, 
        dataInit:function(el){ 
        el.autocomplete({...}); 
        }...} ... ], 
    afterSaveCell:function(){ 
       $.retainChangesOnPaging(); 
       } 
    .... 

を});

とユーティリティretainChangesOnPagingに私のようなものがありますときにサーバーへのすべての変更を提出するイムの準備ができて

(function(){ 
    var retainedChanges; 
    retainedChanges = new Array(); 
    $.retainChangesOnPaging = function(){ 
    var changedCells = ('#grid').jqGrid('getChangedCells'); 
    // loop over changedCells array, removing duplicates if you want to... 
     return retainedChanges.push(/* this is inside the loop; push current value to array*/); 
    .... 
    } 
    $.getRetainedChanges = function(){ 
    return retainedChanges; 
    } 
})(jQuery); 

はその後、私はもう一つの問題 $ .getRetainedChanges呼び出す:私は正しいretainChangesOnPagingを使用方法は何ですか?コードは機能しますが、何か間違っているように見えます。私の閉鎖は大丈夫ですか?

関連する問題