Я использую GWT 2.5.1. У меня есть CellTable, в котором пейджинг выполняется SimplePager. Я вижу следующие проблемы с SimplePager.GWT 2.5.1 Проблема с CellTable и SimplePager
- Число строк, отображаемых на последней странице, неверно. Предположим, что всего 22 строки, а размер страницы - 10. Таким образом, третья страница должна показывать 21-22 из 22. Вместо этого она отображает 13-22 из 22. Последняя страница всегда показывает 10 строк, она требует некоторых с предыдущей страницы.
- Нет кнопки последней страницы. Существует кнопка быстрого перехода, которая также отключена.
- Когда нет данных, говорится в тексте 1-1 0.
Я знаю, что эти известные проблемы, как я сделал много исследований по этой теме. Хотелось узнать, не исправлено ли это в GWT 2.5.1. Какие-нибудь еще обертки? Любое обходное решение для этой ошибки? Я пишу свой пользовательский пейджер, который расширяет SimplePager, как показано ниже.
public class MySimplePager extends SimplePager {
public MySimplePager() {
this.setRangeLimited(true);
}
public MySimplePager(TextLocation location, Resources resources, boolean showFastForwardButton, int fastForwardRows, boolean showLastPageButton) {
super(location, resources, showFastForwardButton, fastForwardRows, showLastPageButton);
this.setRangeLimited(true);
}
@Override
public void setPageStart(int index) {
if (this.getDisplay() != null) {
Range range = getDisplay().getVisibleRange();
int pageSize = range.getLength();
if (!isRangeLimited() && getDisplay().isRowCountExact()) {
index = Math.min(index, getDisplay().getRowCount() - pageSize);
}
index = Math.max(0, index);
if (index != range.getStart()) {
getDisplay().setVisibleRange(index, pageSize);
}
}
}
}
Я инстанцировании пейджера как:
SimplePager.Resources resources = GWT.create(SimplePager.Resources.class);
usersPager = new MySimplePager(SimplePager.TextLocation.CENTER, resources, false,10, true);
Но это не работает. Странно, метод setPageStart() не вызывается в любой момент. Я помещал в него несколько сообщений журнала, но они не отображались. Все, что я делаю неправильно здесь или отсутствует? Любая помощь будет принята с благодарностью.
Спасибо.
Странно, что обходной путь работает для меня с GWT 2.5.1 и я вижу кнопку последней страницы. Интересно, может ли это быть связано с таблицей dataProvider или с тем, как она обновляется. Можете ли вы показать код для класса CellTable? –
Что вы подразумеваете под этим не работает? Вместо операторов журнала просто запускаются в режиме разработчика и помещают точку прерывания в первую строку setPageStart. – bdrx