Sorry, that sounds very odd to me. "refresh the page without refreshing it" 
sounds like a contradiction!

Your Select has made an AJAX request. Why wouldn't you want an AJAX response, 
ie. a partial render? If you return the whole page then any other changes on 
the client-side will be overwritten, by a server that doesn't know what was 
there except for the value of the Select and any context.

Your question is making me think what you really want is to trigger a submit of 
the enclosing form when the Select value changes. That way the server-side will 
get the whole picture and be able to do a suitable non-AJAX response.

On 13 Jul 2014, at 8:06 pm, Muhammad Gelbana <m.gelb...@gmail.com> wrote:

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


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to