Hi, I have a <rich:extendedDataTable> in a panel to display search results.The table uses ExtendedDataModel as the backbean. The panel is refreshed only if a menu command is clicked. However, I found that the methods walk() and getRowCount() are called whenever any portion of the page is submitted by ajax. To make sure that panel is not rendered, I added <h:outputText value="#{resultTable.test}" /> to the panel, and I found that getTest() is not called.
<h:form style="margin:0px; padding:0px; border:5px;"> <h:outputText value="#{resultTable.test}" /> <a4j:queue requestDelay="10" /> <rich:datascroller id="datascroller" for="resultTable" page="#{resultTable.scrollerPage}"/> <rich:extendedDataTable value="#{resultTable}" var="row" rows="3" id="resultTable" width="100%" height="425px" selection="#{resultTable.selection}"> <a4j:support event="onselectionchange" /> <rich:columns value="#{resultTable.propertyNames}" var="propName" > <f:facet name="header"> <h:outputText value="#{propName}" /> </f:facet> <h:outputText value="#{row.map[propName]}" /> </rich:columns> </rich:extendedDataTable> </h:form>
you should add limittolist=true to controls which should not try to check iteration components for auto updated data (like messages).. and also use regions, ajaxSingle in order to limit decodes.