2014-01-23 2 views
1

Я использую GWT 2.5.1. У меня есть CellTable, в котором пейджинг выполняется SimplePager. Я вижу следующие проблемы с SimplePager.GWT 2.5.1 Проблема с CellTable и SimplePager

  1. Число строк, отображаемых на последней странице, неверно. Предположим, что всего 22 строки, а размер страницы - 10. Таким образом, третья страница должна показывать 21-22 из 22. Вместо этого она отображает 13-22 из 22. Последняя страница всегда показывает 10 строк, она требует некоторых с предыдущей страницы.
  2. Нет кнопки последней страницы. Существует кнопка быстрого перехода, которая также отключена.
  3. Когда нет данных, говорится в тексте 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() не вызывается в любой момент. Я помещал в него несколько сообщений журнала, но они не отображались. Все, что я делаю неправильно здесь или отсутствует? Любая помощь будет принята с благодарностью.

Спасибо.

+0

Странно, что обходной путь работает для меня с GWT 2.5.1 и я вижу кнопку последней страницы. Интересно, может ли это быть связано с таблицей dataProvider или с тем, как она обновляется. Можете ли вы показать код для класса CellTable? –

+0

Что вы подразумеваете под этим не работает? Вместо операторов журнала просто запускаются в режиме разработчика и помещают точку прерывания в первую строку setPageStart. – bdrx

ответ

0

У меня нет первых двух проблем. Третий выпуск был в версии 2.5.1 RC1, но был исправлен в выпуске 2.5.1.

1) Есть хаки, чтобы преодолеть это, но я забыл, что это такое. 2) Используйте следующий конструктор для включения fastforwardbutton и последней страница кнопке

public SimplePager(TextLocation location, boolean showFastForwardButton, 
     boolean showLastPageButton) 

3) Это исправлено в последней версии.

For more info check out this.

Смежные вопросы