homar70 wrote:
>
> Hi,
>
> I have trouble of finding out how to make dynamic optgroups and options
> from the select and selectoptions in wicket-extensions. The same issue is
> described in this post
> http://www.nabble.com/Select-and-SelectOptions-td11684707.html#a11695243
>
> Any ideas?
>
> -Spratle
>
Hi
You could use the following classes in wicket-extensions to create an
optgroup class. I have created a static dropdown with optgroups and the
example is given below. A repeater like ListView or RepeatingView can be
used to make it dynamic
public class OptGroup extends SelectOption
{
String label;
public OptGroup(String id, String label)
{
super(id);
this.label = label;
}
protected void onComponentTag(final ComponentTag tag)
{
checkComponentTag(tag, "optgroup");
Select select = (Select)findParent(Select.class);
if (select == null)
{
throw new WicketRuntimeException(
"OptGroup component [" +
getPath() +
"] cannot find its
parent Select. All OptGroup components must be a
child of or below in the hierarchy of a Select component.");
}
tag.put("label", label);
}
}
public class CustomSelectOption extends SelectOption
{
public CustomSelectOption(String id,String displayValue)
{
super(id,new Model(displayValue));
}
protected void onComponentTagBody(final MarkupStream markupStream, final
ComponentTag openTag)
{
replaceComponentTagBody(markupStream, openTag,
getModelObjectAsString());
}
}
...................................
OptGroup swedishOptGroup = new OptGroup("optGroup1","Swedish Cars");
SelectOption option1 = new
CustomSelectOption("option1","Volvo");
swedishOptGroup.add(option1);
SelectOption option2 = new CustomSelectOption("option2","Saab");
swedishOptGroup.add(option2);
select.add(swedishOptGroup);
OptGroup germanOptGroup = new OptGroup("optGroup2","German
Cars");
SelectOption option3 = new
CustomSelectOption("option3","Mercedes");
germanOptGroup.add(option3);
SelectOption option4 = new CustomSelectOption("option4","Audi");
germanOptGroup.add(option4);
select.add(germanOptGroup);
..................................................
<select wicket:id="select">
<optgroup wicket:id="optGroup1">
<option wicket:id="option1"></option>
<option wicket:id="option2"></option>
</optgroup>
<optgroup wicket:id="optGroup2">
<option wicket:id="option3"></option>
<option wicket:id="option4"></option>
</optgroup>
</select>
--
View this message in context:
http://www.nabble.com/Dynamic-Select-and-SelectOptions-tp21076798p21155450.html
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]