Excellent, works perfect. But the only change is instead of
getModelObjectAsString() use getDefaultModelObjectAsString(). Very good
idea, but the only problem is if I have 7 option groups with each option
group with 5-6 options HTML will be really long.

Thanks,
Raghu


tbt wrote:
> 
> 
> 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-tp21076798p24929879.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]

Reply via email to