10 Replies Latest reply on May 2, 2011 8:05 AM by Lukáš Fryč

    Datatable partial update - rowsToUpdate

    Shameer Kunjumohamed Newbie

      Hi guys,

       

      I am confused of how to use the partial update of a datatable, I mean updating the selected rows of the datatable on an event. Earlier in RF 3, it has been done by ajaxKeys, now it is not there and I understand it is being done as specified in this link -

       

      http://docs.jboss.org/richfaces/latest_4_0_X/Component_Reference/en-US/html/chap-Component_Reference-Tables_and_grids.html#sect-Component_Reference-a4jrepeat-Limited_views_and_partial_updates.

       

      Over there, it is mentioned that if we want to refresh only one or more rows in a table, use variables to specify references as follows.

       

      render=tableId:#{@rows(bean.rowToUpdate)}:cellId
      
      
      

      I think there is a mistake in the syntax given here, the correct form should be(I assume) -

       

       

      render=tableId:@rows(#{bean.rowToUpdate}):cellId
      
      

       

      And it says, "The @rows function accepts a collection of row keys to be updated.". I tried different collections here, List, Set etc, but it failed saying -

       

      de.odysseus.el.tree.TreeBuilderException: Error parsing '#{[0]}': syntax error at position 2, encountered '[', expected <IDENTIFIER>|<STRING>|<FLOAT>|<INTEGER>|'true'|'false'|'null'|'-'|'!'|'not'|'empty'|'('

       

      Can some one help on this, what is the correct usage ?

       

      Also, if I want to refresh the whole row, what is the syntax ? Is it as here ?

       

      render=tableId:@rows(#{bean.rowToUpdate})
      
      
      

      Or should I give a comma separated list of columns ? like..

       

      tableId:@rows(#{bean.rowToUpdate}):col1, tableId:@rows(#{bean.rowToUpdate}):col2, ...