私は自分のグリッドに特別な実装をしています。
このために、 jqGridonSelectRow
のコードとloadComplete
メソッドをいくつか書きました。
onSelectRow
グローバル配列を更新する必要があり、メソッドloadComplete
ではグローバル配列にアクセスする必要があり、jqGrid でいくつかの操作が必要です。
それまでは大丈夫です。私はすでにこれをしました。ここで、これらの 2 つのメソッドを、実装が汎用になるように拡張したいと考えています (他のグリッドは、コードを記述せずにこれを使用できます)。
そのために、以下の手順を考えました。
jqGrid.js を使用して、html に新しい js (例: jquery.jqGrid.additional.js) を追加したい
jqGridのデータ配列でグローバル変数を割り当てたい
このjsではグリッドのマルチセレクトの値を確認したい
値が true の場合、onSelectRow、loadComplete メソッドを拡張して、jqGrid が私のメソッドと onSelectRow、loadComplete メソッドで記述されたコードの両方を実行するようにします。
たとえば、 メソッドの実行の直前と直後に実行する必要があるpreLoadComplete
andがあります。同様に、これは onSelectRow メソッドにも当てはまります。postLoadComplete
loadComplete
jquery.jqGrid.additional.js に以下のコードを書いたところ、jqGrid のロード後にアラート (1)、アラート (2) が表示されませんでした。
jqGrid の loadComplete メソッドに記述されたコードのみを実行します。
var oldLoadComplete = $.fn.jqGrid.loadComplete;
$.jqGrid.extend({
loadComplete: function (){
var ret;
// do someting before
alert(1);
ret = oldLoadComplete.call (this);
// do something after
alert(3);
return ret; // return original or modified results
}
});
私はこれで多くのことを試し、何時間も費やしました。