GWT CellBrowser-如何始终显示所有值?

问题描述 投票:5回答:5

GWT的CellBrowser是呈现动态数据的好方法。

但是,当浏览器包含的行超过某个(看似)任意最大值时,它会提供一个“显示更多”标签,用户可以单击该标签以获取未看到的行。

如何禁用此行为,并强制其始终显示每一行?

“替代文字”

gwt cellbrowser
5个回答
2
投票

有几种摆脱“显示更多”(您可以结合使用)的方法:

  • 在您的TreeViewModel中,在NodeInfosetDisplay中,或在DataProvider中的对DefaultNodeInfo的捐赠中,在onRangeChange中:将显示的可见范围覆盖为数据大小。

  • 扩展CellBrowser并覆盖其createPager方法以返回null。虽然它不会更改列表的页面大小,但是您也可以在此处将其设置为很高的值。


2
投票

下面的CellBrowser删除“显示更多”文本,并加载所有可用元素而无需分页。

public class ShowAllElementsCellBrowser extends CellBrowser {

    public ShowAllElementsCellBrowser(TreeViewModel viewModel, CellBrowser.Resources resources) {
        super(viewModel, null, resources);
    }

    @Override
    protected <C> Widget createPager(HasData<C> display) {
        PageSizePager pager = new PageSizePager(Integer.MAX_VALUE);

        // removes the text "Show More" during loading
        display.setRowCount(0);

        // increase the visible range so that no one ever needs to page
        display.setVisibleRange(0, Integer.MAX_VALUE);
        pager.setDisplay(display);

        return pager;
    }
}

0
投票

我找到了一种有效的简单解决方案,可以为CellBrowser的构建器设置页面大小。希望这会有所帮助。

CellBrowser.Builder<AClass> cellBuilder = new CellBrowser.Builder<AClass>(myModel, null); cellBuilder.pageSize(Integer.MAX_VALUE); cellBrowser = cellBuilder.build();


0
投票

最简单的方法是使用:

cellTree.setDefaultNodeSize(Integer.MAX_VALUE);

您的单元树上的方法。在开始扩展树之前,必须执行此操作。


0
投票

我的解决方法是浏览treeview dom的元素,以使用”显示更多”元素。

公共静态列表findElements(Element element){ArrayList结果= new ArrayList();findShowMore(result,element);返回结果; }

私有静态void findShowMore(ArrayList res,Element element){字符串c;

if(element == null){return; }

if(element.getInnerText()。equals(“ Show more”)){res.add(element);}

for(int i = 0; i

并且不使用:

  if (show) {             element.getStyle().clearDisplay();      } else {            element.getStyle().setDisplay(Display.NONE);        }
© www.soinside.com 2019 - 2024. All rights reserved.