0 Replies Latest reply on Apr 13, 2009 9:15 AM by cwolters

    rich:dataTable with rich:columns and ajax-process/reRender p

    cwolters

      Hi!

      I'm currently stuck with a process/reRender problem using dynamic number of columns with rich:dataTable/rich:columns.

      As you can see in the code below, I have an a4j:commandLink in the first colum of a table to allow editing of that row. If the button is clicked, I need to refesh all cells of one row that are generated by the rich:columns element (and not that easy to refernce). After editing, I need to process these cells - or the whole row. But I cannot get the row addressed (no row-id is generated) and I don't know how to reference the dynamic number of cells.

      How can I construct a process/reRender-expression that references all generated cells of the corresponding row or the whole row?

      <a4j:commandLink id="editRow"
       actionListener="#{row.setEdit(true)}"
       ajaxSingle="true"
       process="????????"
       reRender="action,????????">
      



      Here comes a more complete datatable:

      <rich:dataTable value="#{tableDataModel}" var="row" id="table" styleClass="data" rows="5">
      
      <rich:column styleClass="actions" id="action">
       <f:facet name="header">
       Actions
       </f:facet>
       <a4j:commandLink rendered="#{!row.edit}" id="editRow"
       actionListener="#{row.setEdit(true)}"
       ajaxSingle="true"
       process="????????"
       reRender="action,????????">
       <h:graphicImage value="resource:///img/ico_edit.gif" styleClass="abstand"/>
       </a4j:commandLink>
      </rich:column>
      
      <rich:columns value="#{tableDataModel.columns}"
       var="column"
       index="index"
       id="???? - to be set - or not to be set ????"
       styleClass="#{row.edit ? 'edit' : ''}">
       <f:facet name="header">
       <h:outputText value="#{column.columnDetail.label()}" />
       </f:facet>
       <h:outputText value="ColumnIndex: #{index}" />
      </rich:columns>
      
      </rich:dataTable>
      



      All ideas are welcome :)