I try this again using only setOutputMarkupId without modelChanged and
onModelChange, and don't work.
I just setOutputMarkupId on my component and in the ajaxEvent i put:
target.addComponent(getPage().get("header:counter"));
header is a panel and counter is a Label in this panel.
Thanks All.
2010/2/8 Rangel Preis <[email protected]>:
> Thanks, Don but this don't work the value don't change. And I call
> setOutputMarkupId when i build it. and call it again later...
>
> Thanks All.
>
> 2010/2/8 Don Ferguson <[email protected]>:
>> I think setOutputMarkupId() should have been called earlier, in the
>> MyTemplate constructor when the Header was constructed. Ajax processing
>> needs the markup id to find the component you're changing, so setting it in
>> onModelChanged() is too late. Also, I don't think you need the call to
>> modelChanged() or to override onModelChanged. Changing the model object and
>> adding the component to the target should be sufficient.
>>
>> -Don
>>
>> On Feb 8, 2010, at 2:16 AM, Rangel Preis wrote:
>>
>>> My template HTML
>>>
>>> <html xmlns="http://www.w3.org/1999/xhtml"
>>>
>>> xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
>>> <head>
>>> <title wicket:id="title"></title>
>>> <meta wicket:id="description" name="description"
>>> content=""/>
>>> <meta wicket:id="keywords" name="keywords" content=""/>
>>> <meta wicket:id="version" name="version" content=""/>
>>> </head>
>>> <body>
>>>
>>> <a href="#irconteudo" style="display: none;"></a>
>>>
>>>
>>> <div wicket:id="header" class="header"></div>
>>>
>>> <!-- conteudo -->
>>> <div id="conteudo">
>>> <table class="layout">
>>> <tr>
>>> <td wicket:id="col_esq"
>>> class="col_esq"/>
>>> <td>
>>> <a name="irconteudo"
>>> style="display: none;"></a>
>>> <div wicket:id="feedback" id="feedback"/>
>>> <wicket:child/>
>>> </td>
>>> <td class="col_dir">
>>> </td>
>>> </tr>
>>> </table>
>>> </div>
>>> <div wicket:id="footer" class="footer"></div>
>>> </body>
>>> </html>
>>>
>>> Header.html
>>>
>>> <wicket:panel>
>>> <div class="right">
>>> <div wicket:id="header_client" class="client"></div>
>>> </div>
>>> //Value that i want to change
>>> <div class="conter">
>>> <a wicket:id="conter"><span wicket:id="itens"/></a>
>>> </div>
>>>
>>> <div class="left">
>>> <a wicket:id="header_home_link"><div class="logo"/></a>
>>> </div>
>>>
>>> <div wicket:id="header_search" class="search"></div>
>>> </wicket:panel>
>>>
>>> Thanks.
>>>
>>> 2010/2/5 Riyad Kalla <[email protected]>:
>>>>
>>>> What do the tasty HTML bits look like? (wicket:ids and what not)
>>>>
>>>> On Fri, Feb 5, 2010 at 12:50 PM, Rangel Preis <[email protected]>
>>>> wrote:
>>>>>
>>>>> How can I use Ajax to change value from a parent page in my layout. I
>>>>> try to change values in header using a action from content page.
>>>>>
>>>>> I have this:
>>>>>
>>>>> |-------------------------------|
>>>>> | HEADER |
>>>>> |-------------------------------|
>>>>> | MENU | CONTENT |
>>>>> | | |
>>>>> | | |
>>>>> | | |
>>>>> |-----------|-------------------|
>>>>> | FOOTER |
>>>>> |-------------------------------|
>>>>>
>>>>> public class MyTemplate{
>>>>> public MyTemplate() {
>>>>> super();
>>>>>
>>>>> this.add(CSSPackageResource.getHeaderContribution(...);
>>>>>
>>>>> this.add(AbstractTemplatePage.FEEDBACK);
>>>>>
>>>>> this.addOrReplace(new Header());
>>>>>
>>>>> this.add(new Menu());
>>>>>
>>>>> this.add(new Footer());
>>>>> .....
>>>>>
>>>>>
>>>>> public class MyContetPage extends MyTemplate {
>>>>> public MyContetPage(final PageParameters _parameters) {
>>>>> add(new AjaxFallbackLink<Void>("rem") {
>>>>>
>>>>> �...@override
>>>>> public void onClick(final AjaxRequestTarget target) {
>>>>> …...
>>>>> }
>>>>> });
>>>>> ….
>>>>> }
>>>>> }
>>>>>
>>>>> How change value in the header when i click on the ajaxlink of my
>>>>> content page?
>>>>>
>>>>> In the onClick i try this; but don't work
>>>>>
>>>>> //some function to change the model value...
>>>>> this.getPage().get("header:component").modelChanged();
>>>>> target.addComponent(this.getPage().get("header:component"));
>>>>>
>>>>> And in my Header.java I override onModelChanged:
>>>>> protected void onModelChanged() {
>>>>> super.onModelChanged();
>>>>> this.addOrReplace(component).setOutputMarkupId(true));
>>>>> }
>>>>>
>>>>> Thanks all.
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [email protected]
>>>>> For additional commands, e-mail: [email protected]
>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]