私には解決できないように見える問題があります。データセットの配列をループし、データセットごとに独立したスリックグリッドを作成する関数を作成する必要があります。問題は、関数を各グリッドに個別にバインドする必要があることです。例えば:
// this part works fine
for(var i=0; i<domain.length; i++){
dataView = new Slick.Data.DataView();
grid = new Slick.Grid('#' + domain[i].name, dataView, domain[i].columns, domain[i].options);
var data = domain[i].data;
// this works well and I am able to create several slickgrid tables
... etc ...
問題は、すべてのグリッドが「グリッド」と呼ばれるようになったことです。したがって、次のような関数をバインドすると:
// controls the higlighting of the active row
grid.highlightActiveRow = function () {
var currentCell;
currentCell = this.getActiveCell();
すべてのグリッド (場合によっては 1 つのグリッドのみ) に影響する結果が得られます。
関連する機能を持つ複数の独立したグリッドを作成するにはどうすればよいですか??? 問題は、1 つのオブジェクト「グリッド」を作成し、構文 grid.xxx を使用してすべての関数を割り当てたことにあるようですが、反復ごとに一意のオブジェクトを作成する方法がわかりません。
どんな助けでも大歓迎です。
PS: slickgrid は素晴らしいです !!
ありがとう
// * ** * **更新* ** * ** * ** @Jokob、@user700284
ご協力ありがとうございました。これが私がたどり着いた場所です:
var dataView;
function buildTable() {
for(i = 0; i<domains.length; i++){
dataView = new Slick.Data.DataView();
var d = domains[i];
grid = new Slick.Grid('#' + d.name, dataView, d.columns, grids.options);
var data = d.data;
grid.init();
dataView.beginUpdate();
dataView.setItems(data);
// dataView.setFilter(filter); -- will be reinstated once i have this working
dataView.endUpdate();
arrOfGrids.push(grid);
};
};
Jakob - 今のところ、私はあなたのコメントに頭を包むことができるまで "for(i)" に固執しています - これは非常に賢明なようです.
ただし、上記を使用すると、グリッド データは入力されません。js エラーは発生せず、列ヘッダーは表示されますが、データは表示されません。Chrome js デバッガーを使用してデータを表示できるため、d.data への参照は間違いなく正しいです。
何か案は?これまでお世話になりました