【问题标题】:Primefaces Datatable count all rows after filteringPrimefaces Datatable过滤后计算所有行
【发布时间】:2016-12-02 10:45:55
【问题描述】:

我使用 jsf 并有一个可以启用过滤的 primefaces 数据表。

<p:dataTable value="#{tcsInstanceBean.tcsJList}" var="return" scrollable="true" scrollHeight="550" 
                    widgetVar="returnTable"
                    emptyMessage="Nothing found matching given criteria"
                    filteredValue="#{tcsInstanceBean.filteredTcsJList}"
                    styleClass="returnTable, selectable"
                    headerClass="returnTableHeader"
                    rowClasses="returnTableOddRow,returnTableEvenRow"
                    resizableColumns="true">

                    <p:column class="returnColumn" style="width:40%;"
                        sortBy="#{return.path}"
                        filterBy="#{return.path.fileName}"
                        filterMatchMode="contains">
                        <f:facet name="header">Job Path</f:facet>
                        <a href="file:///#{return.path}" target="_blank">#{return.path.fileName}</a>
                    </p:column>


</p:dataTable>

我想输出过滤后可见的所有总行数。 目前我只是计算列表并输出它。

jobsCounter = "We found " + tcsJList.size() + " Jobs!";

过滤后如何计算所有可见行?

【问题讨论】:

  • 使用惰性数据模型,您知道过滤后有多少行
  • 我不想使用分页器。我的表格应该是可滚动的。
  • Lazydatamodel 独立于分页或滚动......
  • 好的,谢谢,我试试看!

标签: jsf primefaces datatable


【解决方案1】:

写一个类似的方法

public int count(){
  if(getTcsInstanceBean().filteredTcsJList!=null){
    return getTcsInstanceBean().filteredTcsJList.size();
  }
  else {
    return getcsInstanceBean().tcsJList.size();
  }
}

或使用 currentPageReportTemplate

<p:dataTable value="#{tcsInstanceBean.tcsJList}" var="return" scrollable="true" scrollHeight="550" 
                widgetVar="returnTable"
                emptyMessage="Nothing found matching given criteria"
                filteredValue="#{tcsInstanceBean.filteredTcsJList}"
                styleClass="returnTable, selectable"
                headerClass="returnTableHeader"
                rowClasses="returnTableOddRow,returnTableEvenRow"
                resizableColumns="true"
                paginator="true"
        paginatorTemplate="{CurrentPageReport}"
        currentPageReportTemplate="We found {totalRecords}, Jobs!">

                <p:column class="returnColumn" style="width:40%;"
                    sortBy="#{return.path}"
                    filterBy="#{return.path.fileName}"
                    filterMatchMode="contains">
                    <f:facet name="header">Job Path</f:facet>
                    <a href="file:///#{return.path}" target="_blank">#{return.path.fileName}</a>
                </p:column>
</p:dataTable>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-18
    • 2012-09-22
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    相关资源
    最近更新 更多