Hello,
recently I have encountered a problem in using the extendedDataTable of RichFaces 3.3.3.Final.
My code:
<rich:extendedDataTable sortMode="multi" selectionMode="multi" value="#{BackingBean.dataList}" selection="BackingBean.selection" var="entry">
<rich:column>
#{entry.date}
</rich:column>
<rich:column>
#{entry.department}
</rich:column>
<f:facet name="footer">
<rich:dataScroller renderIfSinglePage="false">
</f:facet>
<a4j:support event="onselectionchange" action="#{BackingBean.takeSelection}" ajaxSingle="true" ignoreDupResponses="true"/>
</rich:extendedDataTable>
The problem is that the table contains currently about 14.000 entries. When a submit is performed because of selection it takes very long (about 15 seconds) until the method "takeSelection" will be called. I have no idea why this is so. The objects are relatively small (they contain only some strings and a date). I have no explanation why it takes so long until finally the action method is called. Can someone please give me a hint?
EDIT:
I found the source of the problem, but still no suitable solution. I also had filtering enabled on the columns:
<rich:column headerClass="extdt-header"
sortBy="#{entry.date}"
filterBy="#{entry.date}">
#{entry.date}
</rich:column>
Is the filtering always perfomed on every entry even if just the selection changes?? Or is there a possibility to make the whole thing faster even with large number of data in the table?