2016-12-02 5 views
0

Я работаю с jsf и имеет тип данных, которые позволяют фильтровать.Primefaces Datatable подсчитывает все строки после фильтрации

<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!"; 

Как я могу подсчитать все видимые строки в момент после фильтрации?

+0

Используйте ленивый DataModel и вы знаете ** ** сколько строк у вас есть после фильтрации – Kukeltje

+0

я не хочу используйте paginator. Моя таблица должна быть прокручиваемой. – Sundaze

+0

Lazydatamodel не зависит от разбиения на страницы или прокрутки .... – Kukeltje

ответ

0

Написать метод, как

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> 
Смежные вопросы