简体   繁体   English

在数据表中使用 PrimeFaces 延迟加载

[英]Use PrimeFaces Lazyloading In Datatable

I take Data from Database with Hibernate .and I show data in datatable in my program now I have to show data with lazy loading Primefaces Datatable我使用 Hibernate 从数据库中获取数据。现在我在程序中的数据表中显示数据我必须通过延迟加载 Primefaces 数据表来显示数据

I don't know how should I change my Code.我不知道我应该如何更改我的代码。 I search internet, I don't find anyway.我在网上搜索,反正我没有找到。 (I want List testList with lazy loading in Datatable showing) (我想要在数据表中显示延迟加载的 List testList)

XHTML file: XHTML 文件:

<p:dataTable var="test" value="#{testMB.testList}" id="testTable"width="100%" liveResize="true">

ManagedBean file托管Bean文件

private List<TestDTO> testList = new ArrayList<TestDTO>();
public List<TestDTO> getTestList() {
    return logList;
}
public void setTestList(final List<TestDTO> pTestList) {
    testist = pTestList;
}

TestDTO class TestDTO 类

public class TestDTO implements Serializable {

    private static final long serialVersionUID = XXXXXXXXXXXXXXL;

    private String XXXXXXXX;
    private Date XXXXXXXX;
    private String XXXXXXXX;
    private Long XXXXXXXX;
    private Long XXXXXXXX;
    private Long XXXXXXXX;
    private String XXXXXXXX;
    private String XXXXXXXX;
    ........

You have to implement LazyDataModel class for lazy loading instead of using normal ArrayList and you should set lazy to true at your datatable.您必须为延迟加载实现 LazyDataModel 类,而不是使用普通的 ArrayList,并且您应该在数据表中将 lazy 设置为 true。

<p:dataTable var="test" value="#{testMB.testList}" id="testTable"width="100%" liveResize="true" lazy="true">

You might consider turn on paginator as well as it serves the purpose of lazy loading.您可能会考虑打开分页器以及它用于延迟加载的目的。

More Info:http://www.primefaces.org/showcase/ui/data/datatable/lazy.xhtml更多信息:http ://www.primefaces.org/showcase/ui/data/datatable/lazy.xhtml

Sample of a LazyDataModel class. LazyDataModel 类的示例。

class LazyTestDataModel extends LazyDataModel<TestDTO> implements Serializable {
    private static final long serialVersionUID = 1L;

    @Override
    public List<TestDTO> load(int first, int pageSize, String sortField, SortOrder sortOrder,
            Map<String, Object> filters) {
        try {

            Map<String, Object> params = PrimefacesBeanUtils.populatePaginationMap(first, pageSize, sortField, sortOrder, filters);

            setRowCount(testService.getListCount(params));

            if (getRowCount() > 0) {
                return testService.getList(params);
            }

        } catch (Throwable t) {
            errorResult(t);
        }

        return null;
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM