0

CellTable とページネーションを持つ GWT/Gwtbootstrap3 プロジェクトがあります。すべてが魔法のように機能しますが、多くのページを取得すると、ページ付けウィジェットがページ上でどんどん大きくなります。

ページネーションウィジェットの数字を制限するにはどうすればよいですか?5つの数字しか表示されませんか?

お気に入り

<< 1 2 3 4 5 >>

その後

<< 6 7 8 9 10 >>

までのすべて

<< 610 611 612 613 614 >>

現在のように、1から614までのすべての数字が表示されます:-(

4

1 に答える 1

1

問題を解決しました。Webで解決策を見つけて、少し変更しました。

独自のクラスを作成し、ページネーションから拡張しました

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());
    }

}
于 2015-04-15T09:35:43.997 に答える