You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Mansour Al Akeel <ma...@gmail.com> on 2011/03/28 03:58:57 UTC

Re: Problem get selected value using dynamic select with optgroup

I didn't clearly understand the question. But another shot in the dark
;)

You mean, is the behaviour of the ajax link depends on the clicked item ?
If that's what you mean, then I like to be able to disable the clicked
link while viewing the corresponding panel.


The second part about the onchange event, I didn't get it at all. Can
you please kindly elaborate.

I am not new to wicket, but not very advnaced either.

Thank you.

On Tue Feb 22,2011 11:35 am, Mike Mander wrote:
> 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-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org