Re: Resetting a form after ajax submit

2010-01-26 Thread Andrew Lombardi
You should only need access to the Model on the Form, which you would set to 
empty, and then you have two options 

1. Get access to the TextField so you can repaint it with AjaxRequestTarget
2. Use FormComponent's IVisitor pattern to visit everything in that form to 
repaint

On Jan 26, 2010, at 8:36 PM, Flavius wrote:

> 
> 
> For anybody who's interested, I got this to work by just
> calling form.textField.setModelValue(new String[]{""});
> I had to make the fields member vars of the form, though.
> 
> If there's another cleaner way of doing it, I'd appreciate seeing it.
> 
> 
> Flavius wrote:
>> 
>> 
>> I have a panel with a form on it.  I've attached an ajaxButton to submit
>> the form.  Afterward, I want the inputs to be reset with the backing model
>> reset.  I've done a lot of refreshing with an ajax submit, but I can't
>> seem
>> to get the form's values to reset in the webpage.  The backing model seems
>> to be reset, but when I add the form (or it's individual children) to the
>> target,
>> they don't refresh.
>> 
>> I've done a variation of this where I have a repeating view up top and
>> when 
>> that row is selected, it would populate the form, but I had to put the
>> form
>> in a fragment and add the fragment to the target to get that to work.  Can
>> somebody tell me what I'm doing wrong here?
>> 
>> Thanks
>> 
>> public class MyPanel extends Panel
>> {
>>  public MyPanel(String id, Widget myWidget)
>>  {
>>  MyForm myForm = new MyForm("myForm", new MyWidget());
>>  add(myForm);
>>  add(new AjaxButton("saveLink", myForm)
>>  {
>>  @Override
>>  protected void onSubmit(AjaxRequestTarget target,
>> Form form)
>>  {
>>  //save stuff
>>  //refresh repeating view
>>  //now reset the form so the input fields are
>> cleared and there's
>>  //a new backing model
>>  form.clearInput();  //this isn't working
>>  form.setDefaultModelObject(new MyWidget());
>> //this seems to reset the backing model, but the inputs are still popuated
>> on the page
>>  target.addComponent(form);
>>  }
>>  }
>>  }
>> 
>>  private MyForm myForm extends Form
>>  {
>>  public MyForm(String id, Widget myWidget)
>>  {   
>>  TextField textField = new
>> TextField("myField", new PropertyModel(myWidget,
>> "myField"));
>>  add(textField);
>>  ...
>>  }
>>  }
>> }
>> 
>> 
>> -
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>> 
>> 
>> 
> 
> -- 
> View this message in context: 
> http://old.nabble.com/Resetting-a-form-after-ajax-submit-tp27318108p27334057.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
> 
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
> 


To our success!

Mystic Coders, LLC | Code Magic | www.mysticcoders.com

ANDREW LOMBARDI | and...@mysticcoders.com
2321 E 4th St. Ste C-128, Santa Ana CA 92705
ofc: 714-816-4488
fax: 714-782-6024
cell: 714-697-8046
linked-in: http://www.linkedin.com/in/andrewlombardi
twitter: http://www.twitter.com/kinabalu

Eco-Tip: Printing e-mails is usually a waste.


This message is for the named person's use only. You must not, directly or 
indirectly, use,
 disclose, distribute, print, or copy any part of this message if you are not 
the intended recipient.




Re: Resetting a form after ajax submit

2010-01-26 Thread Flavius


For anybody who's interested, I got this to work by just
calling form.textField.setModelValue(new String[]{""});
I had to make the fields member vars of the form, though.

If there's another cleaner way of doing it, I'd appreciate seeing it.


Flavius wrote:
> 
>  
> I have a panel with a form on it.  I've attached an ajaxButton to submit
> the form.  Afterward, I want the inputs to be reset with the backing model
> reset.  I've done a lot of refreshing with an ajax submit, but I can't
> seem
> to get the form's values to reset in the webpage.  The backing model seems
> to be reset, but when I add the form (or it's individual children) to the
> target,
> they don't refresh.
> 
> I've done a variation of this where I have a repeating view up top and
> when 
> that row is selected, it would populate the form, but I had to put the
> form
> in a fragment and add the fragment to the target to get that to work.  Can
> somebody tell me what I'm doing wrong here?
> 
> Thanks
> 
> public class MyPanel extends Panel
> {
>   public MyPanel(String id, Widget myWidget)
>   {
>   MyForm myForm = new MyForm("myForm", new MyWidget());
>   add(myForm);
>   add(new AjaxButton("saveLink", myForm)
>   {
>   @Override
>   protected void onSubmit(AjaxRequestTarget target,
> Form form)
>   {
>   //save stuff
>   //refresh repeating view
>   //now reset the form so the input fields are
> cleared and there's
>   //a new backing model
>   form.clearInput();  //this isn't working
>   form.setDefaultModelObject(new MyWidget());
> //this seems to reset the backing model, but the inputs are still popuated
> on the page
>   target.addComponent(form);
>   }
>   }
>   }
> 
>   private MyForm myForm extends Form
>   {
>   public MyForm(String id, Widget myWidget)
>   {   
>   TextField textField = new
> TextField("myField", new PropertyModel(myWidget,
> "myField"));
>   add(textField);
>   ...
>   }
>   }
> }
> 
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Resetting-a-form-after-ajax-submit-tp27318108p27334057.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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



Re: Resetting a form after ajax submit

2010-01-25 Thread Flavius


I tried that.  It didn't work.

Actually Component#setDefaultModelObject() already calls
modelChanging();
model.setObject(object);
modelChanged();

I also looked at the ajax guestbook example.



igor.vaynberg wrote:
> 
> call form.modelchanged() after setting the new model
> 
> -igor
> 
> On Mon, Jan 25, 2010 at 9:23 PM, Flavius  wrote:
>>
>> I have a panel with a form on it.  I've attached an ajaxButton to submit
>> the form.  Afterward, I want the inputs to be reset with the backing
>> model
>> reset.  I've done a lot of refreshing with an ajax submit, but I can't
>> seem
>> to get the form's values to reset in the webpage.  The backing model
>> seems
>> to be reset, but when I add the form (or it's individual children) to the
>> target,
>> they don't refresh.
>>
>> I've done a variation of this where I have a repeating view up top and
>> when
>> that row is selected, it would populate the form, but I had to put the
>> form
>> in a fragment and add the fragment to the target to get that to work.
>>  Can
>> somebody tell me what I'm doing wrong here?
>>
>> Thanks
>>
>> public class MyPanel extends Panel
>> {
>>        public MyPanel(String id, Widget myWidget)
>>        {
>>                MyForm myForm = new MyForm("myForm", new MyWidget());
>>                add(myForm);
>>                add(new AjaxButton("saveLink", myForm)
>>                {
>>                       �...@override
>>                        protected void onSubmit(AjaxRequestTarget target,
>> Form form)
>>                        {
>>                                //save stuff
>>                                //refresh repeating view
>>                                //now reset the form so the input fields
>> are
>> cleared and there's
>>                                //a new backing model
>>                                form.clearInput();  //this isn't working
>>                                form.setDefaultModelObject(new
>> MyWidget());
>> //this seems to reset the backing model, but the inputs are still
>> popuated
>> on the page
>>                                target.addComponent(form);
>>                        }
>>                }
>>        }
>>
>>        private MyForm myForm extends Form
>>        {
>>                public MyForm(String id, Widget myWidget)
>>                {
>>                        TextField textField = new
>> TextField("myField", new PropertyModel(myWidget,
>> "myField"));
>>                        add(textField);
>>                        ...
>>                }
>>        }
>> }
>>
>>
>> -
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Resetting-a-form-after-ajax-submit-tp27318108p27318409.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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



Re: Resetting a form after ajax submit

2010-01-25 Thread Igor Vaynberg
call form.modelchanged() after setting the new model

-igor

On Mon, Jan 25, 2010 at 9:23 PM, Flavius  wrote:
>
> I have a panel with a form on it.  I've attached an ajaxButton to submit
> the form.  Afterward, I want the inputs to be reset with the backing model
> reset.  I've done a lot of refreshing with an ajax submit, but I can't seem
> to get the form's values to reset in the webpage.  The backing model seems
> to be reset, but when I add the form (or it's individual children) to the
> target,
> they don't refresh.
>
> I've done a variation of this where I have a repeating view up top and when
> that row is selected, it would populate the form, but I had to put the form
> in a fragment and add the fragment to the target to get that to work.  Can
> somebody tell me what I'm doing wrong here?
>
> Thanks
>
> public class MyPanel extends Panel
> {
>        public MyPanel(String id, Widget myWidget)
>        {
>                MyForm myForm = new MyForm("myForm", new MyWidget());
>                add(myForm);
>                add(new AjaxButton("saveLink", myForm)
>                {
>                       �...@override
>                        protected void onSubmit(AjaxRequestTarget target,
> Form form)
>                        {
>                                //save stuff
>                                //refresh repeating view
>                                //now reset the form so the input fields are
> cleared and there's
>                                //a new backing model
>                                form.clearInput();  //this isn't working
>                                form.setDefaultModelObject(new MyWidget());
> //this seems to reset the backing model, but the inputs are still popuated
> on the page
>                                target.addComponent(form);
>                        }
>                }
>        }
>
>        private MyForm myForm extends Form
>        {
>                public MyForm(String id, Widget myWidget)
>                {
>                        TextField textField = new
> TextField("myField", new PropertyModel(myWidget,
> "myField"));
>                        add(textField);
>                        ...
>                }
>        }
> }
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

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



Resetting a form after ajax submit

2010-01-25 Thread Flavius
 
I have a panel with a form on it.  I've attached an ajaxButton to submit
the form.  Afterward, I want the inputs to be reset with the backing model
reset.  I've done a lot of refreshing with an ajax submit, but I can't seem
to get the form's values to reset in the webpage.  The backing model seems
to be reset, but when I add the form (or it's individual children) to the
target,
they don't refresh.

I've done a variation of this where I have a repeating view up top and when 
that row is selected, it would populate the form, but I had to put the form
in a fragment and add the fragment to the target to get that to work.  Can
somebody tell me what I'm doing wrong here?

Thanks

public class MyPanel extends Panel
{
public MyPanel(String id, Widget myWidget)
{
MyForm myForm = new MyForm("myForm", new MyWidget());
add(myForm);
add(new AjaxButton("saveLink", myForm)
{
@Override
protected void onSubmit(AjaxRequestTarget target,
Form form)
{
//save stuff
//refresh repeating view
//now reset the form so the input fields are
cleared and there's
//a new backing model
form.clearInput();  //this isn't working
form.setDefaultModelObject(new MyWidget());
//this seems to reset the backing model, but the inputs are still popuated
on the page
target.addComponent(form);
}
}
}

private MyForm myForm extends Form
{
public MyForm(String id, Widget myWidget)
{   
TextField textField = new
TextField("myField", new PropertyModel(myWidget,
"myField"));
add(textField);
...
}
}
}


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