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. >> > >