Hello George, Hello Thiago, Well I can certainly try the way you have suggested, but wouldn't it be better tif tapestry can handle it? Because, I know that we need to specify client id for the zone when we use it, so generally a static client id will be given to these component eg : <t:zone t:id="Hello" id="hello" > but if the zone is inside another component then shouldn't tapestry generate unique id for this zone like componentid_zoneid?
If some one is developing a component he would not have imagine a condition where his component will be used on the same page twice?. So suppose I use a component which is developed by someone else, then will it not cause problem because he did not include dynamic id's for a zone inside the component? I might be wrong in my understand but a component should work like a black box to me right?. <t:hisComponent t:id="his">, so whether there is zone inside the component or not, it should just behave like a black box to me right? On Thu, Feb 19, 2015 at 7:53 PM, George Christman <gchrist...@cardaddy.com> wrote: > As Thiago pointed out, you need to come up with some sort of dynamic id > generator that can be used to set the id in the tml and the > responseRenderer. I happened to just use the id you used for your > component, but as thiago said, you may want to use that else where and may > want to generate a unique one for your zone. > > On Thu, Feb 19, 2015 at 1:45 PM, Sumanth <roasteddra...@gmail.com> wrote: > > > @Chris > > Hi Chris, > > > > I've tried with zone's with t:async and even zone with ^ but doesnt solve > > the problem. > > > > shouldn't the component be a black box from my perspective? And like > > George Christman has said, the zone's client id's are uniquely generated > by > > tapestry itself, but some how it is unaware of this fact. Secondly doing > > this manually on the above mentioned component is easy but that is not > > dynamic too. > > > > One more thing, if we are building such a component from scratch maybe we > > can take care of it but we have some complex component (a table component > > with lazy loading etc) and going inside it to change every id to make it > > unique ourselves cannot be done. This issue came up today only because we > > needed two such components in the same page but different tabs and when > the > > second table never updated it's data content instead it was updating the > > first table's data. > > > > ajaxResponseRenderer.addRender("countZone_0", countZone) this will never > > work for us because, once the zone is updated then there is high > > possibility that the client id would have changed, for example in lazy > > loading results , then the results would not further load as the id will > be > > updated by tapestry. > > > > kind regards > > Sumanth > > On 19-Feb-2015 7:15 pm, "George Christman" <gchrist...@cardaddy.com> > > wrote: > > > > > I would have thought tapestry would have done this automatically, but > the > > > problem is your ajaxresponserender is telling the first zone to update > > > rather than _0. This will get your second zone updating. > > > > > > ajaxResponseRenderer.addRender("countZone_0", countZone); > > > > > > I'm not sure what the best automated way to do this would be. > > > > > > On Thu, Feb 19, 2015 at 8:17 AM, Sumanth <roasteddra...@gmail.com> > > wrote: > > > > > > > Forgot. :) > > > > > > > > TestPage.tml > > > > > > > > <t:test.TestComponent t:id="abcd" t:count="countForComponentA" /> > > > > > > > > <t:test.TestComponent t:id="hijk" t:count="countForComponentB" /> > > > > > > > > TestPage.java > > > > > > > > public class TestPage { > > > > > > > > @Property > > > > @Persist > > > > private int countForComponentA; > > > > > > > > @Property > > > > @Persist > > > > private int countForComponentB; > > > > > > > > } > > > > > > > > TestComponent.tml > > > > > > > > <t:container > > > > xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd" > > > > xmlns:p="tapestry:parameter"> > > > > > > > > <t:zone t:id="countZone" > > > > > Count : ${count} > > > > </t:zone> > > > > <t:eventLink t:async="true" t:event="updateCount" >Update Count for > > > > Component ${compId}</t:eventLink> > > > > > > > > </t:container> > > > > > > > > TestComponent.java > > > > > > > > > > > > > > > > public class TestComponent{ > > > > > > > > > > > > @Parameter(required=true) > > > > @Property > > > > private int count; > > > > > > > > @Inject > > > > private ComponentResources componentResources; > > > > > > > > @Inject > > > > private AjaxResponseRenderer ajaxResponseRenderer; > > > > > > > > @InjectComponent > > > > private Zone countZone; > > > > > > > > public void onUpdateCount() { > > > > count++; > > > > ajaxResponseRenderer.addRender(countZone); > > > > } > > > > > > > > public String getCompId() { > > > > return componentResources.getId(); > > > > } > > > > } > > > > > > > > > > > > On Thu, Feb 19, 2015 at 2:10 PM, Thiago H de Paula Figueiredo < > > > > thiag...@gmail.com> wrote: > > > > > > > > > On Thu, 19 Feb 2015 11:01:13 -0200, Sumanth < > roasteddra...@gmail.com > > > > > > > > wrote: > > > > > > > > > > Hello Users, > > > > >> > > > > > > > > > > Hi! > > > > > > > > > > Please post the code when asking for help. We're not psychics > (well, > > at > > > > > least I know I'm not). :) > > > > > > > > > > > > > > > > > > > >> I am facing a problem with Tapestry components and would like to > > know > > > if > > > > >> this is a bug. > > > > >> > > > > >> I have two components which are the same . They have a count field > > > and a > > > > >> link to update the count via ajax. > > > > >> > > > > >> The problem is when you click on the link from the second > component > > > then > > > > >> the count zone of the first component gets updated (from UI > > > > perspective). > > > > >> But if you refresh the page, then the values are properly shown. > > > > >> > > > > >> Please see the screenshots for further explanations > > > > >> > > > > >> http://s7.postimg.org/qrz7zuqjf/Before_Clicking_Anything.png > > > > >> > > > > >> http://s4.postimg.org/nenbw7brh/After_Clicking_Second_Link.png > > > > >> > > > > >> http://s10.postimg.org/8kaij68rt/After_Refresh.png > > > > >> > > > > >> > > > > >> Kind Regards, > > > > >> Sumanth > > > > >> > > > > > > > > > > > > > > > -- > > > > > Thiago H. de Paula Figueiredo > > > > > Tapestry, Java and Hibernate consultant and developer > > > > > http://machina.com.br > > > > > > > > > > > --------------------------------------------------------------------- > > > > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > > > > > For additional commands, e-mail: users-h...@tapestry.apache.org > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > George Christman > > > CEO > > > www.CarDaddy.com > > > P.O. Box 735 > > > Johnstown, New York > > > > > > > > > -- > George Christman > CEO > www.CarDaddy.com > P.O. Box 735 > Johnstown, New York >