【问题标题】:PrimeFaces DataTable "No records found" when there are recordsPrimeFaces DataTable“未找到记录”时有记录
【发布时间】:2013-02-05 07:31:45
【问题描述】:

我将 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)

但是当页面被渲染时,组件说“没有找到记录。”

在服务器上执行的休眠日志中的 SQL 返回 1 行,当我使用 dataList 插入的 dataTable 结果是正确的(呈现 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>

当使用&lt;h:dataTable&gt; 时,也有记录。那么&lt;p:dataTable&gt;有什么问题呢?

【问题讨论】:

  • 什么是CustomLazyDataModel?这是你的一些实现吗?
  • 根据 PrimeFaces 代码,当您的方法 getRowCount() 返回 0 时,它会打印“No record found”。您是否对设置 rowCount 感到痛苦?
  • 是的,这是我的实现,它唯一做的就是覆盖 setRowIndex,如评论中所示 code.google.com/p/primefaces/issues/detail?id=1544#c23
  • 好点。当我打电话给 accounts.setRowCount(count);消息“未找到记录”消失,但仍然没有呈现记录。

标签: java primefaces datatable


【解决方案1】:

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

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

现在记录已呈现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-25
    • 2015-08-19
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 2012-12-17
    相关资源
    最近更新 更多