Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在中获取GWT CellTable分页的总行数_Java_Gwt_Pagination_Gwt Celltable - Fatal编程技术网

Java 如何在中获取GWT CellTable分页的总行数

Java 如何在中获取GWT CellTable分页的总行数,java,gwt,pagination,gwt-celltable,Java,Gwt,Pagination,Gwt Celltable,我试图在CellTable中实现分页,但它当前显示的是10条记录中的1-10条,而不是1000条记录中的1-10条。我不确定在哪里可以更新总记录数。我的AsyncDataProvider如下所示: AsyncDataProvider<OutletSearchVO> latestProvider = new AsyncDataProvider<OutletSearchVO>() { @Override protected void

我试图在CellTable中实现分页,但它当前显示的是10条记录中的1-10条,而不是1000条记录中的1-10条。我不确定在哪里可以更新总记录数。我的AsyncDataProvider如下所示:

    AsyncDataProvider<OutletSearchVO> latestProvider = new AsyncDataProvider<OutletSearchVO>() {

        @Override
        protected void onRangeChanged(HasData<OutletSearchVO> display) {
            final int start = display.getVisibleRange().getStart();
            int length = display.getVisibleRange().getLength();
            AsyncCallback<List<OutletSearchVO>> callback = new AsyncCallback<List<OutletSearchVO>>() {
                @Override
                public void onFailure(Throwable caught) {
                    Window.alert(caught.getMessage());
                }

                @Override
                public void onSuccess(List<OutletSearchVO> result) {
                    updateRowData(start, result);
                }
            };
            // The remote service that should be implemented
            service.getOutletPage(start, length, callback);

        }
    };
我用来抓取记录的SQL与此类似:

SELECT *
  FROM (SELECT outlet_id,
           outlet_name,
           image,
           ROWNUM rn
      FROM (  SELECT outlet_id outlet_id,
                     account_name outlet_name,
                     image_score image,
                FROM outlets)
            ORDER BY OOI.created_on DESC, OOI.account_name))
WHERE rn > ? AND rn < ?    
在准备好的语句中,问号被开始和结束范围所取代。

您必须从AsyncDataProvider中调用updateRowCount,类似于调用updateRowData的方式,这意味着您必须向服务器询问该计数或至少一个近似值,然后选择是否将true或false作为第二个参数传递给updateRowCount

当然,您也可以从onRangeChange之外调用updateRowCount,特别是如果您可以预先知道将有多少行,并且这个数字不会有多大变化的话