I have implemented something similar in PrimeFaces via cellEditor component 
which can take any editable component as a child;

http://www.primefaces.org/showcase-labs/ui/datatableEditing.jsf

On Jun 7, 2011, at 11:05 PM, Werner Punz wrote:

> I opted for approach 1 in one project i have on github, speed is not really 
> an issue since you display only a handful of datasets anyway, but I tried to 
> keep the editable information outside of the lifecycle
> to avoid unnecessary saves and restores.
> 
> Werner
> 
> 
> 
> 
> Am 07.06.11 21:29, schrieb Martin Koci:
>> Hi,
>> 
>> 
>> how to do editable table in JSF? Not with all rows/cell in editable
>> state,  only with those ones which user switch with icon to update
>> state.
>> 
>> Example:
>> <a:column id="emailColumn">
>>    <a:inputText id="email" value="#{rowData.email}" />
>> </a:column>
>> 
>> <a:column>
>>  <h:commandButton value="Switch to update"
>> actionListener="#{rowData.switchToUpdate}" />
>> </a:column>
>> 
>> 
>> Solution 1:
>> add ValueExpression to attribute determines state of component:
>> 
>> <a:inputText id="email" value="#{suser.email}" displayValueOnly="#{!
>> rowData.editableState}"/>
>> 
>> This solution has serious disadvantages:
>> -- you must add expression to each component
>> -- for required additional expression is needed:
>> required="#{rowData.required}"
>> -- evaluation of VEs for each row is very slow
>> 
>> 
>> Solution 2:
>> use DataModelListener
>> 
>> Use o implementation of DataModelListener and when UIData scrolls to
>> row, set property of component directly:
>> uiComponent.setDisplayValueOnly(true|false)
>> 
>> Disadvantages:
>> -- dependency on DataModel as value for UIData
>> -- cannot be done from plain XHTML
>> 
>> 
>> 
>> What do you think about this problem? Do you know any elegant solution
>> for this?
>> 
>> Thanks,
>> 
>> Kočičák
>> 
>> 
>> 
>> 
> 
> 

Çağatay Çivici
Principal Consultant
PrimeFaces Lead | JSF EG Member

Prime Teknoloji
Bilkent Cyberpark, A-303d
06800 Ankara/Turkey
Tel: +90 312 265 05 07
http://www.prime.com.tr

Reply via email to