0

strust 2 jquery グリッド プラグインは列をサポートしていません。回避策summaryTypeとして、次のように設定しようとしています。

$("#gridtable").jqGrid('setColProp', 'amount',{summaryType:'sum'}); 

これは最初は機能しません。ただし、グリッドをリロードするか、一部の列を並べ替えると、概要が表示されます。

summaryTypeグリッドを構築する前に定義する必要があるようです。電話をかけてみましsetColProponBeforeTopicsが、再び機能しませんでした。

グリッドを構築する前に列プロパティを設定する方法はありますか?!

4

1 に答える 1

1

strust 2 jquery グリッド プラグインは、バージョン 4.6/4.7 の古い jqGrid を使用していると思います。バージョン 4.4.4 以降、jqGrid はonInitGridコールバックとjqGridInitGridイベントをサポートしており、これはあなたの場合に非常に役立ちます。コールバック/イベントは、jqGrid の外側の要素 (列ヘッダーなど) が構築された後、グリッドに最初にデータが入力されるpopulate(内部メソッドの最初の呼び出しの前) に呼び出されます。

したがって、必要な変更には次のコードを使用できます。

$("#gridtable").bind("jqGridInitGrid", function (e) {
    $(this).jqGrid("setColProp", "amount", { summaryType: "sum" }); 
});

空がすでに存在し、バインディングはjqGridの作成中に変更されないため、グリッドを作成するにバインディングを作成できる/作成する必要があることを理解することが重要です。<table id="gridtable"></table>

無料の jqGridには別のコールバックbeforeInitGridと対応する eventjqGridBeforeInitGridがあり、jqGrid の外側の部分が作成される前に呼び出さjqGridInitGridれますが、目的にはイベントで十分です。

于 2016-02-28T07:48:31.560 に答える