​Its ok to use Ajax, but is it the only way to update the page after a
value is changed in a Select component ? If yes, wouldn't it be an
improvement to be able to refresh the page​ without refreshing it and
losing its state ?

*---------------------*
*Muhammad Gelbana*
http://www.linkedin.com/in/mgelbana


On Sun, Jul 13, 2014 at 9:44 AM, Geoff Callender <
geoff.callender.jumpst...@gmail.com> wrote:

> By returning "this" you're doing a page refresh, which is an HTTP 302
> redirect, instead of an AJAX response.
>
> The redirect causes the browser to issue a second request - a fresh page
> request - which will be freshly rendered by your stateless page class
> without any knowledge of the value you set in the previous request. You can
> see the 302 response and the second request with the browser's web
> inspector or firebug.
>
> Here's a working example:
>
>
> http://jumpstart.doublenegative.com.au/jumpstart7/examples/ajax/select1
>
> Cheers,
>
> Geoff
>
> On 12 Jul 2014, at 11:55 pm, Muhammad Gelbana <m.gelb...@gmail.com> wrote:
>
> > I hope I selected a valid subject !
> >
> > When I handle a VALUE_CHANGED event for a Select component. I receive the
> > current value for the Select component as an event handler method
> parameter.
> >
> > I use this parameter to set a member variable in the page's class.
> >
> > @OnEvent(component = "parameterType", value =
> EventConstants.VALUE_CHANGED)
> >> private Object pairParameterTypeChanged(ChariotTestTypePairParameterType
> >> selectedType) {
> >> this.parameterType = selectedType;
> >> System.out.println("Type1: " + this.parameterType);
> >> return this;
> >> }
> >
> >
> > In another part of the page, I use a Delegate to conditionally display a
> > block.
> >
> > public Block getPairParameterInputBlock() {
> >> System.out.println("Type2: " + this.parameterType);
> >> if (this.parameterType == null) {
> >> return null;
> >> }
> >> switch (this.parameterType) {
> >> case TEXT:
> >> return this.textPairParameterInput;
> >> case NUMERIC:
> >> return this.numericPairParameterInput;
> >> default:
> >> return null;
> >> }
> >> }
> >
> >
> > What I'm facing there is that *this.parameterType* is always null and
> never
> > sees the value set to it in the Select component's event handler method !
> >
> > I understand there could be other ways to achieve the same behavior but
> why
> > isn't this behaving as I expect ?
> >
> > *---------------------*
> > *Muhammad Gelbana*
> > http://www.linkedin.com/in/mgelbana
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>

Reply via email to