I have two rich:datatables: orderMasterTable and orderDetailTable. For the first column of the master table I have a name and it is either rendered with an a4j:commandLink or h:outputText depending on if it is the currently selected row. If it is the currently selected row it is h:outputText and if not selected row then a4j:commandLink so that the row can be selected.
When the a4j:commandLink is clicked it selects the current item and rerenders the detail table with the details of the selected item. This part works.
The problem I have is that I also need to rerender the master table so that the newly selected row is rendered with h:outputText and all other rows are a4j:commandLink. If I only have rerender="orderDetailTable" the detail table is rerendered ok but the link rendering of the master table is not updated. If I put rerender="orderDetailTable, orderMasterTable" then neither table rerenders.
Any help is appeciated.
Here is the code:
<h:form> <!-- master table --> <rich:dataTable id="orderMasterTable" onRowMouseOver="this.style.backgroundColor='#F1F1F1'" onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'" value="#{orderTable.orderList}" var="orderItem" width="600px" ajaxKeys="#{orderTable.keysToUpdate}">> <h:column id="deviceColumn"> <f:facet name="header"> <f:verbatim>Device</f:verbatim> </f:facet> <h:outputText id="device" value="#{orderItem.device}" rendered="#{orderItem.device==orderTable.selectedOrder.device}"/> <a4j:commandLink id="deviceLink" value="#{orderItem.device}" reRender="orderDetailTable, orderMasterTable" rendered="#{orderItem.device!=orderTable.selectedOrder.device}"> <f:setPropertyActionListener value="#{orderItem}" target="#{orderTable.selectedOrder}"/> </a4j:commandLink> </h:column> .... more columns .... </rich:dataTable> <!-- detail table --> <rich:dataTable id="orderDetailTable" value="#{orderTable.selectedOrder.details}" var="orderDetail" width="600px"> <h:column> <f:facet name="header"> <f:verbatim>Submit Order</f:verbatim> </f:facet> </h:column> .... more columns .... </rich:dataTable>