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?