Use @pageactvation context and put what's in your onSucess method in setupRender
On Monday, April 25, 2016, Morgan Hautman <morgan.haut...@gmail.com> wrote: > Hi, > > Thank you guys. > I first tried the fix stated by Felix (@PageActivationContext) but it > doesn't work. > I then tried the ajax way Nathan provided and I have better results but my > grid shows 4 pages/links but I don't see any data. > > I added > > <t:zone t:id="zoneGrid" id="zoneGrid"> > <div/> > <t:grid source="streets" row="street"> > *[Grid here]* > </t:grid> > </t:zone> > > but still no luck, any one has a pointer? > > Regards, > Morgan > > 2016-04-25 12:07 GMT+02:00 Nathan Quirynen <nat...@pensionarchitects.be > <javascript:;>>: > > > Hey, > > > > By returning "this" in the onSuccess event, a redirect happens resulting > > in a new request. If you want to preserve data between requests, you will > > have to save it into the http session. > > If you add http session persistence, the data will be available after a > > new request. <http://tapestry.apache.org/persistent-page-data.html> > > > > Simple example for your case: > > > > @Persist > > @Property > > private Set<Street> streets;|| > > > > > > Be careful: in this case the whole streets set is saved into the http > > session and will remain there until the end of the session (or until you > > remove it manually). > > You could also persist the form vaues instead and then in setupRender > > event fill the trees set based on these values. > > Also you can make use of PersistenceConstants.FLASH to let Tapestry > remove > > it from the session after first access automatically. > > See more info: http://tapestry.apache.org/persistent-page-data.html|| > > > > Another option is making use of AJAX where the updated grid html is sent > > back in the response and updated on the client side. If you want to > achieve > > this you'll need to add a Zone around the grid and make your Form submit > > with AJAX. > > > > Your case: > > > > <t:form t:zone="zoneGrid"> > > ... > > <t:zone t:id="zoneGrid" id="zoneGrid" > > <t:grid source="streets" row="street"> > > </t:grid> > > </t:zone> > > <t:form> > > > > @Inject > > private AjaxResponseRenderer ajax; > > @InjectComponent > > private Zone zoneGrid; > > > > void onSuccess() { > > ... > > ajax.addRender(zoneGrid); > > } > > > > See more info: http://tapestry.apache.org/ajax-and-zones.html > > > > > > Hope this helps u a bit. > > Nathan > > > > > > On 25/04/16 11:05, Morgan Hautman wrote: > > > >> Hi, > >> > >> I'm trying to make a make grid update when submitting a form within the > >> same page. > >> > >> Here is the code: > >> https://gist.github.com/mhautman/e178fdcca46331e1f4932b1cd7074de7 > >> > >> The page gets refreshed but the table/source doesn't seem to be updated. > >> > >> Any help is greatly appreciated. > >> > >> Regards, > >> Morgan > >> > >> > > >