incubator-adffaces-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Henk Vanhoe <Henk.Van...@kava.be>
Subject Re: Trinidad table - remove a row
Date Tue, 13 Feb 2007 13:04:49 GMT
Thank you for your answer!

I have done some more tests and I noticed that when I push the 
"delete"-button the correct "contact" is removed from the model (the 
"smallTable"-list), but these changes are not correctly translated in 
the HTML-page... But when I replace my actionListener by an action 
method (as you do in your code), the changes are correctly displayed (as 
if with an actionlistener the view were not synchronized with the model??)
Unfortunately with an actionListener it is impossible to use partial 
page rendering...

Is there a way to force the view to be redisplayed with the correct data 
without losing the possibility to use partial page rendering?

Regards,
Henk

Matthias Wessendorf wrote:

> What I do is:
>
> <tr:column>
>  <f:facet name="header">
>    <tr:outputText value="-Delete-"/>
>  </f:facet>
>  <tr:commandLink id="delete" text="Delete" action="#{all.deleteUser}">
>    <tr:setActionListener from="#{user}" to="#{all.toDelete}"/>
>  </tr:commandLink>
> </tr:column>
>
>
> in the #{all} bean:
> private User toDelete = null; (+set/get)
>
> and
> public String deleteUser()
> {
>  this.getUserService().removeUser(toDelete);
>  return ("all");
> }
>
> the user service here is injected w/ spring.
>
> The demo is available here:
>
> http://code.google.com/p/facesgoodies/
>
>
>
>
> On 2/13/07, Henk Vanhoe <Henk.Vanhoe@kava.be> wrote:
>
>> Hi,
>>
>> I'm trying to create a (trinidad) table in which it is possible to
>> remove a row. Next to each row, a "delete"-button is displayed. However,
>> each time I push the delete button, a wrong row is deleted (for
>> instance, when I push the delete button next to the first row, the third
>> row is removed)! Does anyone have an idea why this may be happening???
>>
>> Regards,
>> Henk
>>
>> JSF-code:
>>
>>                 <tr:table var="row" value="#{tableBean.smallTable}"
>> rowBandingInterval="1"
>>                     binding="#{tableBean.smallTableBinding}">
>>                     <tr:column sortProperty="naam" sortable="true">
>>                         <f:facet name="header">
>>                             <tr:outputText value="Naam" />
>>                         </f:facet>
>>                         <tr:inputText id="voornaam"    
>> value="#{row.naam}"/>
>>                     </tr:column>
>>                     <tr:column sortProperty="voornaam" sortable="true">
>>                         <f:facet name="header">
>>                             <tr:outputText value="Voornaam" />
>>                         </f:facet>
>>                         <tr:inputText value="#{row.voornaam}" />
>>                     </tr:column>
>>                     <tr:column sortProperty="leeftijd" sortable="true">
>>                         <f:facet name="header">
>>                             <tr:outputText value="Leeftijd" />
>>                         </f:facet>
>>                         <tr:inputText value="#{row.leeftijd}" />
>>                     </tr:column>
>>                     <tr:column>
>>                       <tr:commandLink id="removeContact"
>>                         text="Remove"
>>                         actionListener="#{tableBean.removeContact}"
>>                         immediate="true" />
>>                     </tr:column>
>>                 </tr:table>
>>
>> Managed bean:
>>
>> public class TableBean {
>>     private List<Contact> smallTable;
>>     private UIXTable smallTableBinding;
>>
>>     public TableBean() {
>>         this.smallTable =  new ArrayList<Contact>();
>>
>>         Contact c1 = new Contact();
>>         c1.setNaam("Vandam");
>>         c1.setVoornaam("Alain");
>>         c1.setLeeftijd("33");
>>         smallTable.add(c1);
>>
>>         Contact c2 = new Contact();
>>         c2.setNaam("Tanghe");
>>         c2.setVoornaam("Sammy");
>>         c2.setLeeftijd("36");
>>         smallTable.add(c2);
>>
>>         Contact c3 = new Contact();
>>         c3.setNaam("Laplasse");
>>         c3.setVoornaam("Bucky");
>>         c3.setLeeftijd("42");
>>         smallTable.add(c3);
>>     }
>>
>>     public void removeContact(ActionEvent event) throws Exception {
>>         logger.info("Inside TableBean.removeContact()");
>>
>>         Contact contact = (Contact) smallTableBinding.getRowData();
>>         Collection contacten = (Collection) 
>> smallTableBinding.getValue();
>>         contacten.remove(contact);
>>     }
>>
>>     //Getters, setters and other methods...
>> }
>>
>> faces-config:
>>
>>   <managed-bean>
>>     <managed-bean-name>tableBean</managed-bean-name>
>>     
>> <managed-bean-class>be.kava.jsfdemo.table.TableBean</managed-bean-class>
>>     <managed-bean-scope>session</managed-bean-scope>
>>   </managed-bean>
>>
>>
>
>


Mime
View raw message