I don't know if the code will help, if it doesn't please just
disregard it and answer my question

regards
Wojtek

2008/3/5, Wojciech Biela <[EMAIL PROTECTED]>:
> Hello
>
>  This time my question is not so general.
>
>  We have a big form, part of this form there is a component which
>  should be a dynamic list of fields like this:
>
>  |TextField| - remove
>  |TextField| - remove
>  |TextField| - remove
>  |TextField| - add
>
>  if you click "add" another row "|TextField| - remove" should appear at
>  the bottom, it you should click "remove" then this row should be
>  removed
>
>  problem we have is that the "add" and "remove" link does not send the
>  form, it only sends and ajax request to add an element to the list of
>  components and it operates (target) on a DIV that wraps the whole
>  list, so afterwards it renders the list again loosing values that were
>  already put in
>
>  what is the preferred method to do such a thing? should the add and
>  remove link be a submit link with defaultFormProcessing set to false?
>  or maybe should we try to save values to model objects onchange in the
>  respective fields themselves
>
>  isn't there a way to do it in a neat fashion?
>
>  code responsible for the list component is
>
>     wrapper = new WebMarkupContainer("attributes-wrapper");
>     listView = new ListView("attributes", attributeValuesList) {
>       public void populateItem(final ListItem listItem) {
>         final AttributeValue attributeValue = (AttributeValue)
>  listItem.getModelObject();
>         Renderer inputRenderer =
>  attributeValue.getAttribute().getInputRenderer();
>         Component component = inputRenderer.getComponent(attributeValue);
>         listItem.add(component);
>         AjaxLink addLink = new AddLink("add-link");
>         AjaxLink removeLink = new RemoveLink("remove-link", listItem);
>         if (listItem.getIndex() < (listView.getViewSize() - 1)) {
>           addLink.setVisible(false);
>         } else {
>           removeLink.setVisible(false);
>         }
>         listItem.add(addLink);
>         listItem.add(removeLink);
>       }
>     };
>     wrapper.setOutputMarkupId(true);
>
>  HTML is
>
>         <div wicket:id="attributes-wrapper" class="composit-wrapper">
>                 <div wicket:id="attributes" class="composit">
>                         <div wicket:id="attributeAndValue" 
> class="composit-item"></div>
>                         <div class="composit-links">
>                         <a wicket:id="add-link">+ add</a>
>                         <a wicket:id="remove-link">- remove</a>
>                         </div>
>                 </div>
>         </div>
>
>
>  --
>  Wojtek Biela
>


-- 
Wojtek Biela

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to