You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by overseastars <na...@gmail.com> on 2008/10/17 14:07:34 UTC

AjaxFormComponentUpdatingBehavior problem

Hi all

I'm having problems with using AjaxFormComponentUpdatingBehavior.
I'd like to make to ListChoices which contain a list of countries and
cities. For example, if I select one item in the first ListChoice and the
second ListChoice should display the related cities. Since I dont know how
to get some lists of cities, I just arbitrarily pick up one list to use. 
the following is part of my code. 

My case is that it actually works when the frontpage is opened at the first
time. However, after the first click, the second doesnt work and that
getModelObjectAsString gives me null value. 

Could someone please help me out?? Thanks in advance. BTW, I also wanna know
how to get some lists of cities. :-DMany thanks..

************************************************************************************************************
private String countries;
	private String countries1;
	
	private ListChoice countryListChoice;
	private ListChoice countryListChoice1;
	private List<String> tl;
	private List<String> testlist;

public SearchForm(String id) {
		super(id);

                setModel(new CompoundPropertyModel(""));
		tl = CountryListChoice.getCOUNTRIES();
		testlist = CountryListChoice.getCOUNTRIES();
		setOutputMarkupId(true);
		CountryListChoice clc = new CountryListChoice();
		countryListChoice = new ListChoice("countries", new PropertyModel(this,
"countries"), tl, clc.getRenderer());
		countryListChoice.setOutputMarkupId(true);
		add(countryListChoice);
		
		CountryListChoice clc1 = new CountryListChoice();
		countryListChoice1 = new ListChoice("countries1", new PropertyModel(this,
"countries1"), testlist, clc.getRenderer());
		countryListChoice1.setOutputMarkupId(true);
		add(countryListChoice1);
		
		countryListChoice.add(new MyAjaxFormComponentUpdatingBehavior("onChange"){

			/* (non-Javadoc)
			 * @see
com.smartbooking.wicket.component.MyAjaxFormComponentUpdatingBehavior#onUpdate(org.apache.wicket.ajax.AjaxRequestTarget)
			 */
			@Override
			protected void onUpdate(AjaxRequestTarget target) {
				// TODO Auto-generated method stub
				if(countryListChoice.getModelObject() != null){
				testlist.clear();
				String c = countryListChoice.getModelObjectAsString();
				System.out.println("\n\nour c : " + c + "\n\n");
				testlist.add(c);
				}else{
					testlist.clear();
					testlist.add("xing said null");
					System.out.println("\n\n really null!!! \n\n");
				}
				target.addComponent(countryListChoice1);
			}});
		}
	/**
	 * @return the countries
	 */
	public String getCountries() {
		return countries;
	}

	/**
	 * @param countries the countries to set
	 */
	public void setCountries(String countries) {
		this.countries = countries;
	}

	/**
	 * @return the countries1
	 */
	public String getCountries1() {
		return countries1;
	}

	/**
	 * @param countries1 the countries1 to set
	 */
	public void setCountries1(String countries1) {
		this.countries1 = countries1;
	}

-- 
View this message in context: http://www.nabble.com/AjaxFormComponentUpdatingBehavior-problem-tp20032008p20032008.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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


Re: AjaxFormComponentUpdatingBehavior problem

Posted by overseastars <na...@gmail.com>.

Ah......thanks a lot....Althoug I google it, I didnt find that. But I think
my code contains just this and others are not relevant.




igor.vaynberg wrote:
> 
> first, you did not show all your code. second, there is too much code to
> read through in an email and figure out whats wrong, create a quickstart
> project. third, there is already an example that shows how to do this
> properly: http://www.wicketstuff.org/wicket13/ajax/choice
> 
> -igor
> 
> On Sat, Oct 18, 2008 at 3:32 AM, overseastars <na...@gmail.com>
> wrote:
> 
>>
>> Any idea???I'm trapped by this problem......and no idea.....
>>
>>
>>
>> overseastars wrote:
>> >
>> > Hi all
>> >
>> > I'm having problems with using AjaxFormComponentUpdatingBehavior.
>> > I'd like to make to ListChoices which contain a list of countries and
>> > cities. For example, if I select one item in the first ListChoice and
>> the
>> > second ListChoice should display the related cities. Since I dont know
>> how
>> > to get some lists of cities, I just arbitrarily pick up one list to
>> use.
>> > the following is part of my code.
>> >
>> > My case is that it actually works when the frontpage is opened at the
>> > first time. However, after the first click, the second doesnt work and
>> > that getModelObjectAsString gives me null value. And if I refresh the
>> > page, two lists both become empty.
>> >
>> > Could someone please help me out?? Thanks in advance. BTW, I also wanna
>> > know how to get some lists of cities. :-DMany thanks..
>> >
>> >
>> ************************************************************************************************************
>> > private String countries;
>> >       private String countries1;
>> >
>> >       private ListChoice countryListChoice;
>> >       private ListChoice countryListChoice1;
>> >       private List<String> tl;
>> >       private List<String> testlist;
>> >
>> > public SearchForm(String id) {
>> >               super(id);
>> >
>> >                 setModel(new CompoundPropertyModel(""));
>> >               tl = CountryListChoice.getCOUNTRIES();
>> >               testlist = CountryListChoice.getCOUNTRIES();
>> >               setOutputMarkupId(true);
>> >               CountryListChoice clc = new CountryListChoice();
>> >               countryListChoice = new ListChoice("countries", new
>> PropertyModel(this,
>> > "countries"), tl, clc.getRenderer());
>> >               countryListChoice.setOutputMarkupId(true);
>> >               add(countryListChoice);
>> >
>> >               CountryListChoice clc1 = new CountryListChoice();
>> >               countryListChoice1 = new ListChoice("countries1", new
>> > PropertyModel(this, "countries1"), testlist, clc.getRenderer());
>> >               countryListChoice1.setOutputMarkupId(true);
>> >               add(countryListChoice1);
>> >
>> >               countryListChoice.add(new
>> > MyAjaxFormComponentUpdatingBehavior("onChange"){
>> >
>> >                       /* (non-Javadoc)
>> >                        * @see
>> >
>> com.smartbooking.wicket.component.MyAjaxFormComponentUpdatingBehavior#onUpdate(org.apache.wicket.ajax.AjaxRequestTarget)
>> >                        */
>> >                       @Override
>> >                       protected void onUpdate(AjaxRequestTarget target)
>> {
>> >                               // TODO Auto-generated method stub
>> >                               if(countryListChoice.getModelObject() !=
>> null){
>> >                               testlist.clear();
>> >                               String c =
>> countryListChoice.getModelObjectAsString();
>> >                               System.out.println("\n\nour c : " + c +
>> "\n\n");
>> >                               testlist.add(c);
>> >                               }else{
>> >                                       testlist.clear();
>> >                                       testlist.add("xing said null");
>> >                                       System.out.println("\n\n really
>> null!!! \n\n");
>> >                               }
>> >                               target.addComponent(countryListChoice1);
>> >                       }});
>> >               }
>> >       /**
>> >        * @return the countries
>> >        */
>> >       public String getCountries() {
>> >               return countries;
>> >       }
>> >
>> >       /**
>> >        * @param countries the countries to set
>> >        */
>> >       public void setCountries(String countries) {
>> >               this.countries = countries;
>> >       }
>> >
>> >       /**
>> >        * @return the countries1
>> >        */
>> >       public String getCountries1() {
>> >               return countries1;
>> >       }
>> >
>> >       /**
>> >        * @param countries1 the countries1 to set
>> >        */
>> >       public void setCountries1(String countries1) {
>> >               this.countries1 = countries1;
>> >       }
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/AjaxFormComponentUpdatingBehavior-problem-tp20032008p20045781.html
>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/AjaxFormComponentUpdatingBehavior-problem-tp20032008p20052858.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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


Re: AjaxFormComponentUpdatingBehavior problem

Posted by Igor Vaynberg <ig...@gmail.com>.
first, you did not show all your code. second, there is too much code to
read through in an email and figure out whats wrong, create a quickstart
project. third, there is already an example that shows how to do this
properly: http://www.wicketstuff.org/wicket13/ajax/choice

-igor

On Sat, Oct 18, 2008 at 3:32 AM, overseastars <na...@gmail.com> wrote:

>
> Any idea???I'm trapped by this problem......and no idea.....
>
>
>
> overseastars wrote:
> >
> > Hi all
> >
> > I'm having problems with using AjaxFormComponentUpdatingBehavior.
> > I'd like to make to ListChoices which contain a list of countries and
> > cities. For example, if I select one item in the first ListChoice and the
> > second ListChoice should display the related cities. Since I dont know
> how
> > to get some lists of cities, I just arbitrarily pick up one list to use.
> > the following is part of my code.
> >
> > My case is that it actually works when the frontpage is opened at the
> > first time. However, after the first click, the second doesnt work and
> > that getModelObjectAsString gives me null value. And if I refresh the
> > page, two lists both become empty.
> >
> > Could someone please help me out?? Thanks in advance. BTW, I also wanna
> > know how to get some lists of cities. :-DMany thanks..
> >
> >
> ************************************************************************************************************
> > private String countries;
> >       private String countries1;
> >
> >       private ListChoice countryListChoice;
> >       private ListChoice countryListChoice1;
> >       private List<String> tl;
> >       private List<String> testlist;
> >
> > public SearchForm(String id) {
> >               super(id);
> >
> >                 setModel(new CompoundPropertyModel(""));
> >               tl = CountryListChoice.getCOUNTRIES();
> >               testlist = CountryListChoice.getCOUNTRIES();
> >               setOutputMarkupId(true);
> >               CountryListChoice clc = new CountryListChoice();
> >               countryListChoice = new ListChoice("countries", new
> PropertyModel(this,
> > "countries"), tl, clc.getRenderer());
> >               countryListChoice.setOutputMarkupId(true);
> >               add(countryListChoice);
> >
> >               CountryListChoice clc1 = new CountryListChoice();
> >               countryListChoice1 = new ListChoice("countries1", new
> > PropertyModel(this, "countries1"), testlist, clc.getRenderer());
> >               countryListChoice1.setOutputMarkupId(true);
> >               add(countryListChoice1);
> >
> >               countryListChoice.add(new
> > MyAjaxFormComponentUpdatingBehavior("onChange"){
> >
> >                       /* (non-Javadoc)
> >                        * @see
> >
> com.smartbooking.wicket.component.MyAjaxFormComponentUpdatingBehavior#onUpdate(org.apache.wicket.ajax.AjaxRequestTarget)
> >                        */
> >                       @Override
> >                       protected void onUpdate(AjaxRequestTarget target) {
> >                               // TODO Auto-generated method stub
> >                               if(countryListChoice.getModelObject() !=
> null){
> >                               testlist.clear();
> >                               String c =
> countryListChoice.getModelObjectAsString();
> >                               System.out.println("\n\nour c : " + c +
> "\n\n");
> >                               testlist.add(c);
> >                               }else{
> >                                       testlist.clear();
> >                                       testlist.add("xing said null");
> >                                       System.out.println("\n\n really
> null!!! \n\n");
> >                               }
> >                               target.addComponent(countryListChoice1);
> >                       }});
> >               }
> >       /**
> >        * @return the countries
> >        */
> >       public String getCountries() {
> >               return countries;
> >       }
> >
> >       /**
> >        * @param countries the countries to set
> >        */
> >       public void setCountries(String countries) {
> >               this.countries = countries;
> >       }
> >
> >       /**
> >        * @return the countries1
> >        */
> >       public String getCountries1() {
> >               return countries1;
> >       }
> >
> >       /**
> >        * @param countries1 the countries1 to set
> >        */
> >       public void setCountries1(String countries1) {
> >               this.countries1 = countries1;
> >       }
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/AjaxFormComponentUpdatingBehavior-problem-tp20032008p20045781.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: AjaxFormComponentUpdatingBehavior problem

Posted by overseastars <na...@gmail.com>.
Any idea???I'm trapped by this problem......and no idea.....



overseastars wrote:
> 
> Hi all
> 
> I'm having problems with using AjaxFormComponentUpdatingBehavior.
> I'd like to make to ListChoices which contain a list of countries and
> cities. For example, if I select one item in the first ListChoice and the
> second ListChoice should display the related cities. Since I dont know how
> to get some lists of cities, I just arbitrarily pick up one list to use. 
> the following is part of my code. 
> 
> My case is that it actually works when the frontpage is opened at the
> first time. However, after the first click, the second doesnt work and
> that getModelObjectAsString gives me null value. And if I refresh the
> page, two lists both become empty.
> 
> Could someone please help me out?? Thanks in advance. BTW, I also wanna
> know how to get some lists of cities. :-DMany thanks..
> 
> ************************************************************************************************************
> private String countries;
> 	private String countries1;
> 	
> 	private ListChoice countryListChoice;
> 	private ListChoice countryListChoice1;
> 	private List<String> tl;
> 	private List<String> testlist;
> 
> public SearchForm(String id) {
> 		super(id);
> 
>                 setModel(new CompoundPropertyModel(""));
> 		tl = CountryListChoice.getCOUNTRIES();
> 		testlist = CountryListChoice.getCOUNTRIES();
> 		setOutputMarkupId(true);
> 		CountryListChoice clc = new CountryListChoice();
> 		countryListChoice = new ListChoice("countries", new PropertyModel(this,
> "countries"), tl, clc.getRenderer());
> 		countryListChoice.setOutputMarkupId(true);
> 		add(countryListChoice);
> 		
> 		CountryListChoice clc1 = new CountryListChoice();
> 		countryListChoice1 = new ListChoice("countries1", new
> PropertyModel(this, "countries1"), testlist, clc.getRenderer());
> 		countryListChoice1.setOutputMarkupId(true);
> 		add(countryListChoice1);
> 		
> 		countryListChoice.add(new
> MyAjaxFormComponentUpdatingBehavior("onChange"){
> 
> 			/* (non-Javadoc)
> 			 * @see
> com.smartbooking.wicket.component.MyAjaxFormComponentUpdatingBehavior#onUpdate(org.apache.wicket.ajax.AjaxRequestTarget)
> 			 */
> 			@Override
> 			protected void onUpdate(AjaxRequestTarget target) {
> 				// TODO Auto-generated method stub
> 				if(countryListChoice.getModelObject() != null){
> 				testlist.clear();
> 				String c = countryListChoice.getModelObjectAsString();
> 				System.out.println("\n\nour c : " + c + "\n\n");
> 				testlist.add(c);
> 				}else{
> 					testlist.clear();
> 					testlist.add("xing said null");
> 					System.out.println("\n\n really null!!! \n\n");
> 				}
> 				target.addComponent(countryListChoice1);
> 			}});
> 		}
> 	/**
> 	 * @return the countries
> 	 */
> 	public String getCountries() {
> 		return countries;
> 	}
> 
> 	/**
> 	 * @param countries the countries to set
> 	 */
> 	public void setCountries(String countries) {
> 		this.countries = countries;
> 	}
> 
> 	/**
> 	 * @return the countries1
> 	 */
> 	public String getCountries1() {
> 		return countries1;
> 	}
> 
> 	/**
> 	 * @param countries1 the countries1 to set
> 	 */
> 	public void setCountries1(String countries1) {
> 		this.countries1 = countries1;
> 	}
> 
> 

-- 
View this message in context: http://www.nabble.com/AjaxFormComponentUpdatingBehavior-problem-tp20032008p20045781.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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