GWTのCellBrowserは、動的データを表示するための優れた方法です。
ただし、ブラウザに(一見)任意の最大数よりも多くの行が含まれている場合、ユーザーがクリックして表示されていない行をフェッチできる「もっと見る」ラベルが表示されます。
この動作を無効にして、常にすべての行を表示するようにするにはどうすればよいですか?
GWTのCellBrowserは、動的データを表示するための優れた方法です。
ただし、ブラウザに(一見)任意の最大数よりも多くの行が含まれている場合、ユーザーがクリックして表示されていない行をフェッチできる「もっと見る」ラベルが表示されます。
この動作を無効にして、常にすべての行を表示するようにするにはどうすればよいですか?
「Show More」を取り除くにはいくつかの方法があります (これらは組み合わせることができます)。
あなたのTreeViewModel
、あなたNodeInfo
の、setDisplay
またはあなたのあなたの、あなたのDataProvider
あなたのDefaultNodeInfo
、にonRangeChange
:ディスプレイの可視範囲をあなたのデータのサイズに上書きします。
そのメソッドを拡張CellBrowser
してオーバーライドし、 return にします。ただし、リストのページ サイズは変更されませんが、非常に高い値に設定することもできます。createPager
null
以下の CellBrowser は、「Show More」テキストを削除し、ページングなしで使用可能なすべての要素をロードします。
public class ShowAllElementsCellBrowser extends CellBrowser {
public ShowAllElementsCellBrowser(TreeViewModel viewModel, CellBrowser.Resources resources) {
super(viewModel, null, resources);
}
@Override
protected <C> Widget createPager(HasData<C> display) {
PageSizePager pager = new PageSizePager(Integer.MAX_VALUE);
// removes the text "Show More" during loading
display.setRowCount(0);
// increase the visible range so that no one ever needs to page
display.setVisibleRange(0, Integer.MAX_VALUE);
pager.setDisplay(display);
return pager;
}
}
ページサイズをCellBrowserのビルダーに設定することで、有効で簡単な解決策を見つけました。これが役立つことを願っています。
CellBrowser.Builder<AClass> cellBuilder = new CellBrowser.Builder<AClass>(myModel, null);
cellBuilder.pageSize(Integer.MAX_VALUE);
cellBrowser = cellBuilder.build();