Hi,

2)
usually you would have a callback on your popup, that is called when the it closes. This would be the time to update the edited row.

3)
the browser invokes the 'change' event only *after* leaving the input field. You can listen for immediate changes with Wicket's OnChangeAjaxBehavior - but updating the whole row while you're editing one input inside of it will interfere with the user's input :/.

Hope this helps
Sven



Am 10.11.2016 um 10:55 schrieb ganea iulia:
Hello, thank you for the help.
It did solve some of the situations, but not all of them.
Here is where I still face issues.

In my table row, I have an input field and a icon near it. I insert text
into input field and press the icon (AjaxLink component).

1. If data exists in the db for that input value, the data is shown in
others columns - OK, this works now.
2. If data does not exist in the db for that input value, a popup window
opens allowing to insert the new values - NOK
    This does not work because  when coming back from the pop window the row
is not refreshed with the new inserted values in the db.
3. on change event of the input, the data from the others row cells should
be emptied - NOK, this does not work either.

//this is how I get the row
MarkupContainer row = cellItem.findParent(Item.class);

//change event
txt.add(new AjaxFormComponentUpdatingBehavior("change") {
private static final long serialVersionUID = 1654345477970524731L;

@Override
protected void onUpdate(AjaxRequestTarget target) {


getModelObject().setValue1(null);
getModelObject().setValue2(null);

target.add(row);
}

});


Thank you for your help


On Wed, Nov 9, 2016 at 12:43 PM, Sven Meier <s...@meiers.net> wrote:

Hi,

I'm assuming you're using Ajax, so you should update the whole row after
your behavior/component has changed the field.

Each row item has to output a markup id, e.g. you can use a custom Item
subclass that calls #setOutputMarkupId(true):

     protected Item<T> newRowItem(final String id, final int index, final
IModel<T> model)
     {
         return new RowItem<>(id, index, model);
     }

This has the advantage, that you can update the row from wherever you are
inside the row:

     @Override
     protected void onUpdate(AjaxRequestTarget target) {
         RowItem row = findParent(RowItem.class);
         target.addComponent(row);
     }

Alternatively you can use Wicket event bubbling to notify the rowItem to
update itself.

Hope this helps
Sven



Am 09.11.2016 um 09:41 schrieb ganea iulia:

Hello,

I'm using wicket 7.5.
I have a DataTable, where one of the columns is an input textfield with a
clickable icon near it. When providing data for the input field, and
clicking the icon, some validations are done, and the fields for other
columns should be updated accordingly.

However they are not updated at all.
Could you please advise how I can implement this?

Thank you.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to