2011-01-11 8 views
5

GWTのCellBrowserは、動的データを表示するのに最適です。GWT CellBrowser-すべての値を常に表示するには?

しかし、ブラウザにいくつかの(見かけ上)任意の最大値よりも多くの行が含まれている場合、ユーザーがクリックして見えない行をフェッチするための「詳細表示」ラベルが提供されます。

この動作を無効にして、常にすべての行を表示できるようにするにはどうすればよいですか?

alt text

+0

良い質問です。 'CellBrowser.createDisplay(...)'は 'new BrowserCellList (...)'を呼び出します。そしてそれは 'CellList.DEFAULT_PAGE_SIZE'を使用します。これは25に固定されています。 –

答えて

2

(あなたは組み合わせることができた)「ショー詳細」を取り払うことのいくつかの方法があります。あなたのTreeViewModel

  • 、あなたのNodeInfo年代setDisplayまたはDataProviderでは、 DefaultNodeInfoonRangeChange:ディスプレイの表示範囲をデータのサイズに上書きします。

  • CellBrowserを延長し、そのcreatePagerメソッドを無効にしてnullを返します。しかし、リストのページサイズは変更されませんが、そこでは非常に高い値に設定することもできます。

2

以下の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; 
    } 
} 
0

私はCellBrowserのビルダーにページサイズを設定する有効かつ単純な解決策を発見しました。 これが役立つことを願っています。

CellBrowser.Builder<AClass> cellBuilder = new CellBrowser.Builder<AClass>(myModel, null); cellBuilder.pageSize(Integer.MAX_VALUE); cellBrowser = cellBuilder.build();

0

これを行うための最も簡単な方法は、使用している:あなたの携帯ツリー上の

cellTree.setDefaultNodeSize(Integer.MAX_VALUE);

方法。ツリーの展開を開始する前にこれを行う必要があります。

関連する問題