0

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);
                   }

これを行う方法?

4

0 に答える 0