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

Reply via email to