i acquired the next structure which display editable rows within an html table

 + WebMarkupContainer - in HTML <tbody wicket:id="container">
   + ListView which for each item in the list does (in HTML this)
     + item.add(new PopTable1Row("Pop1Panel", popTable1Item, ComponentMode.EDIT));
       + PopTable1Row component contains
         + Form
           + some inputs and a 2 submit buttons (Save, Delete)

Now i wish to make that happen for instance by hitting remove their email list view will AJAX like reload without reloading the entire page. The Remove button removes a row from the table, so one row should disappear.

I accomplished reloading the ListView by utilizing AjaxSelfUpdatingTimerBehavior:

WebMarkupContainer.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(5)));

It rejuvenated the listView every 5 seconds. OK, however i wish to refresh the listView in onSubmit from the for instance the Remove Button.

And heres the question: how to get this done?

I attempted within the onSubmit:


But both didn't work.

First you need to set outputId to true in yours listView. So Wicket will generate an id for that list tag, needed to become up-to-date by ajax.


After which inside your onSubmit method tell Wicket to repaint their email list. Observe that within the example the save button is really a AjaxLink, but you should use other components.

AjaxLink<Void> dltBttn = new AjaxLink<Void>("yourButtonId") {
  public void onClick(AjaxRequestTarget target) {
    // your stuff

    if(target != null) {
      // tells wicket to repaint your list