incubator-adffaces-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Simon Lessard" <simon.lessar...@gmail.com>
Subject Re: Trinidad table - remove a row
Date Tue, 13 Feb 2007 13:13:51 GMT
Hello,

Yes there's a way to force the component being re-rendered. Try the
following (assuming ev is the action event):

RequestContext.getCurrentInstance().addPartialTarget(ev.getComponent());


Regards,

~ Simon

On 2/13/07, Henk Vanhoe <Henk.Vanhoe@kava.be> wrote:
>
> 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
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message