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
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]