GWT CellBrowser - как всегда показывать все значения? - PullRequest
5 голосов
/ 11 января 2011

GWT CellBrowser - отличный способ представления динамических данных.

Однако, когда браузер содержит больше строк, чем некоторый (казалось бы) произвольный максимум, он предлагает метку «Показать больше», по которой пользователь может щелкнуть, чтобы получить невидимые строки.

Как отключитьтакое поведение, и заставить его всегда показывать каждую строку?

alt text

Ответы [ 4 ]

2 голосов
/ 04 января 2012

Приведенный ниже CellBrowser удаляет текст «Показать больше» плюс загружает все доступные элементы без подкачки.

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;
    }
}
2 голосов
/ 26 июля 2011

Есть несколько способов избавиться от «Показать ещё» (которые вы можете комбинировать):

  • В вашем TreeViewModel, в ваших NodeInfo setDisplay или в DataProvider вашем подарке DefaultNodeInfo, в onRangeChange: перезапишите видимый диапазон дисплея до размера ваши данные.

  • Расширьте CellBrowser и переопределите его createPager метод для возврата null. Это не изменит размер страницы списка, но вы также можете установить для него очень высокое значение.

0 голосов
/ 29 декабря 2014

Самый простой способ сделать это с помощью:

cellTree.setDefaultNodeSize(Integer.MAX_VALUE);

метод на вашем клеточном дереве. Вы должны сделать это, прежде чем начать расширять дерево.

0 голосов
/ 20 февраля 2014

Я нашел правильное и простое решение в настройке размера страницы для создателя CellBrowser.Надеюсь, это поможет.

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

...