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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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>
>>
>>
>
>