当有记录时,PrimeFaces DataTable“找不到记录”

时间:2013-02-20 10:24:25

标签: java primefaces datatable

我将dataTable定义为:

<p:dataTable var="account" value="#{customerBean.accounts}"
            id="accounts" lazy="true">
            <p:column>
                <f:facet name="header">
                    <h:outputText value="#{msg['editCustomerForm.accountNumbers.header']}" />
                </f:facet>
                <h:outputText value="#{account.accountNumber}" />
            </p:column>
</p:dataTable>

帐户在此方法中加载(在@PostConstruct方法中调用)

 private void initAccounts() {
        accounts = new CustomLazyDataModel<Account>() {
            @Override
            public List<Account> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, String> filters) {
                return accountService.getAccountsForCustomer(customerModel.getCustomer(), first, pageSize);
            }
        };
        accounts.setPageSize(10);
    }

CustomLazyDataModel只是因为这个错误:http://code.google.com/p/primefaces/issues/detail?id=1544(见评论#23)

但是当呈现页面时,组件会显示“找不到记录。”

在服务器上执行的hibernate日志中的SQL返回1行,当我使用dataList时,dataTable的结果是corect(渲染了1行)。

<p:dataList value="#{customerBean.accounts}" var="account"
            id="accounts-old" rows="10"
            type="none" lazy="true">
            <f:facet name="header">
                <h:outputText value="#{msg['editCustomerForm.accountNumbers.header']}" />

        </f:facet>

        <h:outputText value="#{account.accountNumber}" />

    </p:dataList>

当使用<h:dataTable>记录时也是如此。那么<p:dataTable>会出现什么问题?

1 个答案:

答案 0 :(得分:2)

组件上唯一缺少的是rows参数。

<p:dataTable var="account" value="#{customerBean.accounts}" id="accounts" lazy="true" rows="10"  paginatorAlwaysVisible="false" >

现在呈现记录。

相关问题