2011-01-11 6 views
5

GWT's CellBrowser to świetny sposób prezentacji dynamicznych danych.GWT CellBrowser - jak zawsze wyświetlać wszystkie wartości?

Jednak gdy przeglądarka zawiera więcej wierszy niż niektóre (na pozór) dowolne maksimum, oferuje etykietę "Pokaż więcej", którą użytkownik może kliknąć, aby pobrać niewidoczne wiersze.

Jak mogę wyłączyć to zachowanie i zmusić go do wyświetlania zawsze każdego wiersza?

alt text

+0

Dobre pytanie. 'CellBrowser.createDisplay (...)' wywołuje 'nową BrowserCellList (...)'. A to używa 'CellList.DEFAULT_PAGE_SIZE', która jest ustalona na 25. Niezbyt konfigurowalny fragment kodu ... –

Odpowiedz

2

Istnieje kilka sposobów na pozbycie się "Pokaż więcej" (które można połączyć):

  • w twojej TreeViewModel w twojej NodeInfo „s setDisplay lub w DataProvider Twoje podanie do DefaultNodeInfo, w onRangeChange: nadpisanie widocznego zakresu wyświetlania do rozmiaru danych.

  • Przedłużenie CellBrowser i zastąpienie jego metody createPager, aby zwrócić null. Nie zmieni to jednak rozmiaru strony listy, ale można tam również ustawić bardzo wysoką wartość.

2

Poniższy CellBrowser usuwa tekst "Pokaż więcej" plus ładuje wszystkie dostępne elementy bez stronicowania.

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

Znalazłem prawidłowe i proste rozwiązanie przy ustawianiu rozmiaru strony dla konstruktora CellBrowser. Mam nadzieję, że to pomoże.

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

0

Najłatwiej to zrobić przy użyciu:

cellTree.setDefaultNodeSize(Integer.MAX_VALUE);

metoda na drzewie komórki. Musisz to zrobić, zanim zaczniesz rozwijać drzewo.

Powiązane problemy