Hi
As you have clearlay said id, the problem is to generate javascript
initialization code once everything is rendered. I think that the
AfterRender of the main page is not called in an Zone refresh. Only the
block is rendered.

Replacing the block by a 'component' will allow you to implement such a
method.

Christophe.


2009/10/5 Toby Hobson <toby.hob...@googlemail.com>

> Sorry to clarify ...
>
> "I guess the problem is that the textField is nested in a block which is
> rendered using AJAX so although the page has completed it's rendering the
> textField has not yet being rendered therefore it doesn't have a clientId?"
>
> 2009/10/5 Toby Hobson <toby.hob...@googlemail.com>
>
> > Hi Christophe
> >
> > Unfortunately this doesn't seem to work, although maybe I have missed
> > something. For example
> >
> > @Component
> > private TextField techFirstName;
> >
> > void afterRender() {
> >   logger.debug("techFirstName clientId: " + techFirstName.getClientId());
> > }
> >
> > [DEBUG] pages.Order techFirstName clientId: null
> >
> > I guess the problem is that the textField is nested in a block which is
> > rendered using javascript so although the page has completed it's
> rendering
> > the textField has not yet being rendered therefore it doesn't have a
> > clientId?
> >
> > Toby
> >
> > 2009/10/5 cordenier christophe <christophe.corden...@gmail.com>
> >
> > Hello
> >>
> >> You'd better use a RenderSupport and @AfterRender to create a javascript
> >> method call that will link your checkbox with the copyDetails() method.
> >>
> >> Something like this, i guess :
> >>
> >> In a separate JS file injected via @IncludeJavascript
> >>
> >> copyDetails : function(techFirstId) {
> >> ....
> >> }
> >>
> >> linkDetails: function(checkBoxId){
> >>   $(checkBoxId).observer('click', ...);
> >> }
> >>
> >> And your page
> >>
> >> @Inject
> >> private RenderSupport renderSupport;
> >>
> >> @InjectComponent
> >> private TextField techFirstName;
> >>
> >> @AfterRender
> >> private void linkDetails(){
> >>   renderSupport.addScript('linkDetails(%s);'
> techFirstName.getClientId());
> >> }
> >>
> >> Regards.
> >>
> >
> >
>

Reply via email to