A shot in the dark.
Is the behavior required at the select? Or is the option getting the
onchange event?
Cheers
Mike
I'm using the select component due to realizing a dynamic optgroup and option
list.
It works rather fine but my problem is to get the selected value.
I tried to use an ajax behavior (AjaxComponentUpdatingBehavior,
OnChangeBehavior) but the onUpdate methode is never called --> doesn't work!
Maybe there is a solution for my problem!? What I'm doing wrong?
My code:
Select select = new Select(selectId);
select.add(new ListView("optGroups", myList) {
@Override
protected void populateItem(ListItem item) {
MyBean myBean = (MyBean) item.getModelObject();
item.add(new OptGroup("optGroup", myBean.getName(), myBean.getList()));
}
});
add(select);
class OptGroup extends SelectOption {
String label;
List<MyBean2> list;
public OptGroup(String id, String label, List<MyBean2> list) {
super(id);
this.label = label;
this.list = list;
init();
}
@SuppressWarnings("unchecked")
private void init() {
this.add(new ListView("grpOptions", list) {
@Override
protected void populateItem(ListItem item) {
MyBean2 myBean2 = (MyBean2) item.getModelObject();
item.add(new CustomSelectOption("grpOption",
myBean2.getName()));
}
});
}
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 {
@SuppressWarnings("unchecked")
public CustomSelectOption(String id, String displayValue) {
super(id, new Model(displayValue));
}
protected void onComponentTagBody(final MarkupStream markupStream, final
ComponentTag openTag) {
replaceComponentTagBody(markupStream, openTag,
getDefaultModelObjectAsString());
}
}
I tried this, but it doesn't work:
select.add(new AjaxFormComponentUpdatingBehavior("onchange") {
protected void onUpdate(AjaxRequestTarget target) {
System.out.println("Update ajax");
// @todo updating model
}
});
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org