В моем веб-приложении у меня много форм со списками компонентов, пользователи могут динамически добавлять/удалять эти компоненты. Например, при вводе информации о себе пользователь может добавить несколько текстовых полей, содержащих имена своих детей. Для каждого компонента есть ссылка для удаления, а также ссылка на добавление нового компонента. Разметка выглядит следующим образом:Wicket - список компонентов форм с функциональностью добавления/удаления
<div>
<div wicket:id="rows">
<input type="text" wicket:id="name"/>
<a wicket:id="remove">Remove</a>
</div>
<a wicket:id="add">Add</a>
</div>
где строки является калитка ретранслятор.
Компоненты ввода варьируются от списка к списку (это может быть выпадающее меню или что-то еще, к нему могут быть добавлены разные валидаторы и т. Д.), Но ссылки остаются неизменными. Их разметка и логика не меняются. Поскольку у меня много таких списков в моих формах, у меня есть макуп и дублирование кода. То, что я хотел бы иметь, чтобы сохранить разметку моих входных компонентов в форме, избавляясь от этих связей, что-то вроде этого:
<div wicket:id="dynamicList">
<input type="text" wicket:id="name"/>
</div>
, которая будет оказана в виде списка текстовых полей с оным/удалять ссылки.
Я знаю, что у меня должна быть разметка для ссылок где-то, например, автогенерировать их или помещать в панель или что-то в этом роде, я просто не хочу их дублировать каждый раз.
UPD: Вот разметка для предлагаемого решения (которые не работают) с использованием компонента Border: ListBorder.html:
<wicket:border>
<div wicket:id="rows">
<wicket:body/>
<a wicket:id="remove">Remove</a>
</div>
<a wicket:id="add">Add</a>
</wicket:border>
MyForm.html:
<form wicket:id="form">
...
<div wicket:id="dynamicList">
<input type="text" wicket:id="name"/>
</div>
...
</form>
Не могли бы вы предоставить фрагменты того, как работают ваши добавления/удаления ссылок? Кроме того, какой ретранслятор вы используете? – WiseTree
Я использую RepeatingView на основе примера в Wicket in Action [blog] (http://wicketinaction.com/2008/10/building-a-listeditor-form-component/), в котором также описывается, как работают эти ссылки. Но я думаю, что это больше о том, как организовать разметку ... – koszek