p:dataTable“找不到记录。”而手动返回非空列表

时间:2015-12-08 19:48:34

标签: jsf primefaces datatable lazyload

日志显示我确实调用了LazyDataModel.load()方法,但表中没有显示任何记录。

<p:dataTable var="user" value="#{adminLazyBean.lazyDataModel}"
            paginator="true" rows="10" rowsPerPageTemplate="5,10,15"
            id="carTable" lazy="true"
            paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}">

            <p:column headerText="Id" sortBy="#{user.id}" filterBy="#{user.id}">
                <h:outputText value="#{user.id}" />
            </p:column>
            <p:column headerText="Name" sortBy="#{user.name}"
                filterBy="#{user.name}">
                <h:outputText value="#{user.name}" />
            </p:column>
            <p:column headerText="Username" sortBy="#{user.username}"
                filterBy="#{user.username}">
                <h:outputText value="#{user.username}" />
            </p:column>
            <p:column headerText="Phonenumber" sortBy="#{user.phoneNumber}"
                filterBy="#{user.phoneNumber}">
                <h:outputText value="#{user.phoneNumber}" />
            </p:column>
        </p:dataTable>

这是我的加载方法。

@Override
    public List<UserDTO> load(int first, int pageSize, String sortField, SortOrder sortOrder,
            Map<String, Object> filters) {
        Logger log = Logger.getLogger(LazyAdmin.class.getName());
        log.debug("LOAD CALLED");
        UserDTO u = new UserDTO();
        u.setName("DUMMY");
        List<UserDTO> list = new ArrayList<>();
        list.add(u);
        return list;
         }
}

如您所见,我返回一个列表,其中包含一个名为DUMMY的元素。 我认为这应该有效。我做了至少5次贯穿示例代码并且找不到任何东西。

1 个答案:

答案 0 :(得分:0)

lazyDataModel.setRowCount(2);解决了这个问题。