Я использую класс SimplePager класса GWT (2.5) в своем приложении для отображения предварительно загруженных данных (я знаю точное количество строк заранее).GWT SimplePager issues
Проблема с последней страницей. Учитывая, что у меня есть, например, 42 элемента с начальным видимым диапазоном 10. Первая страница - 1-10, вторая 11-20, третье 21-30, четвертое, 31-40. Проблема в том, что пятая страница не 41-42 (чего я хочу, потому что я хочу иметь возможность прокручивать назад и вперед и «земля» точно по тем же данным), но 33-42.
Я пробовал различную обработку с помощью переопределения методов SimplePager/AbstractPager, без успеха. Например, если я переопределяю setPageStart, сделайте то же самое, что и com.google.gwt.user.cellview.client.AbstractPager.setPageStart (int), но со следующим прокомментированным (я думаю, что это код виновника):
if (isRangeLimited && display.isRowCountExact()) {
index = Math.min(index, display.getRowCount() - pageSize);
}
Последняя страница прекрасна (41-42), но это стирает размер страницы навсегда, и когда я перехожу с последней страницы на предыдущую страницу, она становится 40-41 (ожидается: 31-40). Вероятно, это связано с тем, что размер страницы не является константой, предоставляемой экземпляру пейджера, но вычисляется с использованием последнего объекта Range («int pageSize = range.getLength();» в методе setPageStart).
Любая подсказка о том, как изменить поведение пейджинга на мои потребности, не нарушая ничего?
Спасибо!