gwt celltable を使用しています。
私の列は、他のモジュールを介して構成可能です。AsyncDataProvider を使用して行データを更新しました。
celltable に updateColumnData のみを行う方法はありますか? 新しく追加されたデータがセルテーブルに挿入されるか、セルテーブルから列が削除されるようにします。
テーブルに 10 列あるとします。ユーザーは celltable 列を構成できます
- ユーザーが選択した2つの列を削除したい場合、サーバー呼び出しが行われ、関連するrecordListオブジェクトがcolumninfo(8列)とともに送信されますが、この場合、データのある古い10列とデータのない8列がcelltableに入力されます
実際: celltable に表示される 18 列、データのある 10 列 + データのない 8 列
想定:レコード付きの 8 列
サンプルコードは以下の通り
asyncDataProvider.updateRowData(startRowIndexOfPage, result);
if ("CONFIGURE".equals(eventType)) {
cellTable.redraw();
// To create column
createCellTableColumns(latestColumnList);
}
cellTable.redraw();
result : レコード情報を含むレコード リスト latestColumnList : List : 列情報を含む更新された列の数
サーバーから取得した celltable に新しいデータ (列 + レコード データ) のみを表示したい
編集次の方法で新しい列データを使用して新しいセルテーブルを作成しようとしましたが、役に立たない新しい列が追加/削除されていない古いセルテーブルはそのままです。
if ("CONFIGURE".equals(eventType) ) {
asyncDataProvider.removeDataDisplay(cellTable); // remove old celltable
cellTable = createNewCellTable(); // after column config create new celltable
pager.setDisplay(cellTable);
pager.setSearchRecordCount(searchRecordCount);
asyncDataProvider.updateRowData(startRowIndexOfPage, result);
createCellTableColumns(latestColumnList());
asyncDataProvider.addDataDisplay(cellTable);
}
これを行う方法?