2015-04-15 2 views
0

У меня есть проект GWT/Gwtbootstrap3 с CellTable и разбиение на страницы. Все работает как шарм, но когда я получаю много страниц, мой виджет для разбивки на страницы просто становится все больше и больше на странице.GWT/Gwtbootstrap3 - Как ограничить числа на страницах разбиения на страницы

Как ограничить числа в виджетах для разбивки на страницы, чтобы они отображали только 5 чисел ???

Как

< < 1 2 3 4 5 >>

, а затем

< < 6 7 8 9 10 >>

все до

< < 610 611 612 613 614 >>

Как сейчас, он показывает все числа от 1 до 614 :-(

ответ

1

Решил проблему. Я нашел решение в Интернете и немного изменил его.

Я сделал свой собственный класс и простиралась от PAGINATION

package dk.common.gwt.ui.generictable; 

import org.gwtbootstrap3.client.ui.AnchorListItem; 
import org.gwtbootstrap3.client.ui.Pagination; 

import com.google.gwt.event.dom.client.ClickEvent; 
import com.google.gwt.event.dom.client.ClickHandler; 
import com.google.gwt.user.cellview.client.SimplePager; 

public class MyPagination extends Pagination 
{ 
    public void rebuild(final SimplePager pager, int setDisplayLimitNum) 
    { 
     clear(); 

     final int displayLimitNum = setDisplayLimitNum; 
     final int lineNum = pager.getPage()/displayLimitNum; 
     int nowNum = pager.getPage()/displayLimitNum; 
     int startPagerNum = nowNum * displayLimitNum; 
     int endPagerNum = nowNum * displayLimitNum + displayLimitNum; 

     if (nowNum * displayLimitNum + displayLimitNum > pager.getPageCount()) 
     { 
      endPagerNum = pager.getPageCount(); 
     } 

     if (pager.getPageCount() < displayLimitNum) 
     { 
      endPagerNum = pager.getPageCount(); 
     } 

     if (pager.getPageCount() == 0) 
     { 
      return; 
     } 

     for (; startPagerNum < endPagerNum; startPagerNum++) 
     { 
      final int display = startPagerNum + 1; 
      final AnchorListItem page = new AnchorListItem(String.valueOf(display)); 
      page.addClickHandler(new ClickHandler() 
      { 
       @Override 
       public void onClick(final ClickEvent event) 
       { 
        pager.setPage(display - 1); 
       } 
      }); 

      if (startPagerNum == pager.getPage()) 
      { 
       page.setActive(true); 
      } 

      add(page); 
     } 

     final AnchorListItem prev = addPreviousLink(); 
     prev.addClickHandler(new ClickHandler() 
     { 
      @Override 
      public void onClick(final ClickEvent event) 
      { 
       pager.setPageStart((lineNum - 1) * pager.getPageSize() * displayLimitNum); 
      } 
     }); 
     prev.setEnabled(pager.hasPreviousPage()); 

     final AnchorListItem next = addNextLink(); 
     next.addClickHandler(new ClickHandler() 
     { 
      @Override 
      public void onClick(final ClickEvent event) 
      { 
       pager.setPageStart((lineNum + 1) * pager.getPageSize() * displayLimitNum); 
      } 
     }); 
     next.setEnabled(pager.hasNextPage()); 
    } 

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