Re: Panel update after Ajax Submit

2011-03-01 Thread Josh Kamau
Hi there,

If you want to refresh the panel, call setOutputMarkupId(true)  on the panel
, then add the panel to the target.

If the Ajax Link  is on the same panel, you can call
this.setOutputMarkupId(true) , and you can also add MyPanel.this to the
target.

The point is , what ever you want to refresh via ajax must have
outputMarkupId set to true.

Hope that helps.

Josh.

On Tue, Mar 1, 2011 at 11:51 AM, Dmitriy Neretin 
dmitriy.nere...@googlemail.com wrote:

 Hello everybody!

 Hope someone can help me. I don't really understand, what I should add as
 ajax target :(

 So, I have an abstract class Index where I add all my panels (3) and it is
 my masterlayout. I add the panels in the index class like this:

 add(new ShoppingCartPanel(id, anotherMehod);

 The appropriate Markup has just following tags (ShoppingCartPanel.html):
 wicket:panel
  Content
 /wicketpanel

 In the other Page (that inherits from Index) I have implemented the
 AjaxSubmitLink:

 add(new AjaxSubmitLink(addtocart) {
@Override
protected void onSubmit(AjaxRequestTarget target, Form form) {
target.addComponent(?);

 What I want is, when the link is activated the panel should be updated...

 First: I don't really understand what I have add to the addComponent()
 method ?
 Second: Where schould I set setOutputMarupId(true) ?

 Thank You!



Re: Panel update after Ajax Submit

2011-03-01 Thread Dmitriy Neretin
Thanks for reply,

If you want to refresh the panel, call setOutputMarkupId(true)  on the panel
 , then add the panel to the target.


Does it mean I should call setOutputMarkUpId(true) in the constructor of the
panel? If I do so, the layout of the panel is destroyed.


 If the Ajax Link  is on the same panel, you can call
 this.setOutputMarkupId(true) , and you can also add MyPanel.this to the
 target.


No, the link is not on the same panel. This is actually the point that I
don't really understand. What should I add, if the link not on the panel.


 The point is , what ever you want to refresh via ajax must have
 outputMarkupId set to true.

 Hope that helps.

 Josh.

 On Tue, Mar 1, 2011 at 11:51 AM, Dmitriy Neretin 
 dmitriy.nere...@googlemail.com wrote:

  Hello everybody!
 
  Hope someone can help me. I don't really understand, what I should add as
  ajax target :(
 
  So, I have an abstract class Index where I add all my panels (3) and it
 is
  my masterlayout. I add the panels in the index class like this:
 
  add(new ShoppingCartPanel(id, anotherMehod);
 
  The appropriate Markup has just following tags (ShoppingCartPanel.html):
  wicket:panel
   Content
  /wicketpanel
 
  In the other Page (that inherits from Index) I have implemented the
  AjaxSubmitLink:
 
  add(new AjaxSubmitLink(addtocart) {
 @Override
 protected void onSubmit(AjaxRequestTarget target, Form form) {
 target.addComponent(?);
 
  What I want is, when the link is activated the panel should be updated...
 
  First: I don't really understand what I have add to the addComponent()
  method ?
  Second: Where schould I set setOutputMarupId(true) ?
 
  Thank You!
 



Re: Panel update after Ajax Submit

2011-03-01 Thread Pedro Santos
Hi, if you update the panel within the form, you need to update it's submit
link component outside this panel also.
onsubmit(target){
  target.addComponent(formPanel);
  target.addComponent(submitLinkNotNestedInsideTheFormPanel);
}

On Tue, Mar 1, 2011 at 9:51 AM, Dmitriy Neretin 
dmitriy.nere...@googlemail.com wrote:

 Thanks for reply,

 If you want to refresh the panel, call setOutputMarkupId(true)  on the
 panel
  , then add the panel to the target.
 

 Does it mean I should call setOutputMarkUpId(true) in the constructor of
 the
 panel? If I do so, the layout of the panel is destroyed.


  If the Ajax Link  is on the same panel, you can call
  this.setOutputMarkupId(true) , and you can also add MyPanel.this to the
  target.
 

 No, the link is not on the same panel. This is actually the point that I
 don't really understand. What should I add, if the link not on the panel.


  The point is , what ever you want to refresh via ajax must have
  outputMarkupId set to true.
 
  Hope that helps.
 
  Josh.
 
  On Tue, Mar 1, 2011 at 11:51 AM, Dmitriy Neretin 
  dmitriy.nere...@googlemail.com wrote:
 
   Hello everybody!
  
   Hope someone can help me. I don't really understand, what I should add
 as
   ajax target :(
  
   So, I have an abstract class Index where I add all my panels (3) and it
  is
   my masterlayout. I add the panels in the index class like this:
  
   add(new ShoppingCartPanel(id, anotherMehod);
  
   The appropriate Markup has just following tags
 (ShoppingCartPanel.html):
   wicket:panel
Content
   /wicketpanel
  
   In the other Page (that inherits from Index) I have implemented the
   AjaxSubmitLink:
  
   add(new AjaxSubmitLink(addtocart) {
  @Override
  protected void onSubmit(AjaxRequestTarget target, Form form)
 {
  target.addComponent(?);
  
   What I want is, when the link is activated the panel should be
 updated...
  
   First: I don't really understand what I have add to the addComponent()
   method ?
   Second: Where schould I set setOutputMarupId(true) ?
  
   Thank You!
  
 




-- 
Pedro Henrique Oliveira dos Santos


Re: Panel update after Ajax Submit

2011-03-01 Thread Dmitriy Neretin
No, the panel is outside! What I just want, is that the panel shows me the
result of the submit.
But I did it :)

Hier is my solution:

1. Call in the constructor of the panel setOutputMarkUpId(true);
2. Instantiate the panel Class in the abstract Class (masterlayout) as field
and return it back with a simple getter.
3. In the AjaxSubmitLink: target.addComponent(call the getter from an
abstract class);

I don't know, if it was right, but it works now :)

What do the experts mean?

On 1 March 2011 14:04, Pedro Santos pedros...@gmail.com wrote:

 Hi, if you update the panel within the form, you need to update it's submit
 link component outside this panel also.
 onsubmit(target){
  target.addComponent(formPanel);
  target.addComponent(submitLinkNotNestedInsideTheFormPanel);
 }

 On Tue, Mar 1, 2011 at 9:51 AM, Dmitriy Neretin 
 dmitriy.nere...@googlemail.com wrote:

  Thanks for reply,
 
  If you want to refresh the panel, call setOutputMarkupId(true)  on the
  panel
   , then add the panel to the target.
  
 
  Does it mean I should call setOutputMarkUpId(true) in the constructor of
  the
  panel? If I do so, the layout of the panel is destroyed.
 
 
   If the Ajax Link  is on the same panel, you can call
   this.setOutputMarkupId(true) , and you can also add MyPanel.this to the
   target.
  
 
  No, the link is not on the same panel. This is actually the point that I
  don't really understand. What should I add, if the link not on the panel.
 
 
   The point is , what ever you want to refresh via ajax must have
   outputMarkupId set to true.
  
   Hope that helps.
  
   Josh.
  
   On Tue, Mar 1, 2011 at 11:51 AM, Dmitriy Neretin 
   dmitriy.nere...@googlemail.com wrote:
  
Hello everybody!
   
Hope someone can help me. I don't really understand, what I should
 add
  as
ajax target :(
   
So, I have an abstract class Index where I add all my panels (3) and
 it
   is
my masterlayout. I add the panels in the index class like this:
   
add(new ShoppingCartPanel(id, anotherMehod);
   
The appropriate Markup has just following tags
  (ShoppingCartPanel.html):
wicket:panel
 Content
/wicketpanel
   
In the other Page (that inherits from Index) I have implemented the
AjaxSubmitLink:
   
add(new AjaxSubmitLink(addtocart) {
   @Override
   protected void onSubmit(AjaxRequestTarget target, Form
 form)
  {
   target.addComponent(?);
   
What I want is, when the link is activated the panel should be
  updated...
   
First: I don't really understand what I have add to the
 addComponent()
method ?
Second: Where schould I set setOutputMarupId(true) ?
   
Thank You!
   
  
 



 --
 Pedro Henrique Oliveira dos Santos



Re: Panel update after Ajax Submit

2011-03-01 Thread Zoltán Nagy
Hi!

2011/3/1 Dmitriy Neretin dmitriy.nere...@googlemail.com:
 Thanks for reply,

 If you want to refresh the panel, call setOutputMarkupId(true)  on the panel
 , then add the panel to the target.


 Does it mean I should call setOutputMarkUpId(true) in the constructor of the
 panel? If I do so, the layout of the panel is destroyed.



You should set it before you first send out the component (normal
pageRender or in on ajax response). You can set it in the constructor
or some time before Rendering.


-- 
Zoltán Nagy

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