You can display the current record number as you navigate an af:table by using certain information available on the table's iterator binding, namely the currentRowIndexInRange and rangeStart attributes. The current row can be calculated by the following EL expression: #{bindings.Iterator.rangeStart+bindings.Iterator.currentRowIndexInRange+1}, where Iterator is the table's bound iterator identifier. We add one because the row index is 0-based. You will need to surround the af:table with an af:panelCollection and use one of its facets - I suggest using the secondaryToolbar facet - to add an af:toolbar with an af:outputText inside it. For the current record count to be updated as you navigate the table, you will need to setup a partialTrigger on the af:outputText to the af:table. The example below shows this implementation.
Example:
<af:panelcollection ... >
<af:table id="tbl1" ... >
</af:table>
<f:facet name="secondaryToolbar">
<af:toolbar id="t1">
<af:group id="g1">
<af:outputtext id="ot24" value="#{bindings.Employees1Iterator.rangeStart+bindings.Employees1Iterator.currentRowIndexInRange+1}/#{bindings.Employees1Iterator.estimatedRowCount} records">
visible="#{bindings.Employees1Iterator.currentRow ne null}"
partialTriggers="tbl1 ::qryId1"/>
</af:group>
</af:toolbar>
</f:facet>
</af:panelcollection>
Here is what the output looks like:
Context:
JSF page
Example:
<af:panelcollection ... >
<af:table id="tbl1" ... >
</af:table>
<f:facet name="secondaryToolbar">
<af:toolbar id="t1">
<af:group id="g1">
<af:outputtext id="ot24" value="#{bindings.Employees1Iterator.rangeStart+bindings.Employees1Iterator.currentRowIndexInRange+1}/#{bindings.Employees1Iterator.estimatedRowCount} records">
visible="#{bindings.Employees1Iterator.currentRow ne null}"
partialTriggers="tbl1 ::qryId1"/>
</af:group>
</af:toolbar>
</f:facet>
</af:panelcollection>
Here is what the output looks like:
Context:
JSF page