Rather than explain (probably badly) exactly what the problem is, I'll
provide a small example page called BasicAJAX. This page demonstrates that
if an actionlink that causes a zone refresh via AJAX is part of the
refreshed zone itself, it only works on alternate clicks in IE. Each time
it's rendered as part of the zone update it causes a full page refresh when
clicked, which means it can do a zone update the following click. It works
fine in Firefox though.

If I return a block instead of a zone the second click in the link inside
causes the ComponentEventException shown below, instead of the full page
refresh.

org.apache.tapestry.runtime.ComponentEventException - A component event
handler method returned the value
[EMAIL PROTECTED] Return type
org.apache.tapestry.internal.structure.BlockImpl can not be handled.
Configured return types are java.lang.Class, java.lang.String, java.net.URL,
org.apache.tapestry.Link, org.apache.tapestry.StreamResponse,
org.apache.tapestry.runtime.Component.


It looks like a bug to me, should it be entered into a bug DB somewhere? I
hope that this is a known problem that has already been fixed or is in the
process of being fixed because it's a pretty big dealbreaker for T5 AJAX
support as IE is still the dominant browser.

(using T5.0.11, IE6.0.2900, FF2.0.0.6, Tomcat5.5.9)

--------- BasicAJAX.java ---------
package com.proquest.Tap5ProtoIMPA.pages;

import org.apache.tapestry.annotations.Component;
import org.apache.tapestry.annotations.Persist;
import org.apache.tapestry.annotations.Property;
import org.apache.tapestry.corelib.components.Zone;


public class BasicAJAX
{
        @Property
        @Persist
        private int count = 0;

        @Component
        private Zone aZone;

        Object onActionFromOutsideZone() {
                count++;
                return aZone;
        }
        
        Object onActionFromInsideZone() {
                count++;
                return aZone;
        }
}

--------- BasicAJAX.tml ---------
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
<body style="font-family: Arial, Helvetica, sans-serif;  font-size:
smaller;">
        
        <h1>Basic AJAX Tester (${count} - only updates on full page 
refresh)</h1>
        
         # Refresh - this is an AJAX-enabled ActionLink <br/><br/>
        
        <div style="margin-left: 50px">
                <div t:type="zone" t:id="aZone">
                        <p>I am a AJAX updated ZONE! count=${count}</p>
                         # Refresh - this is an AJAX-enabled ActionLink 
<br/><br/>
                </div>
        </div>

</body>
</html>
-- 
View this message in context: 
http://www.nabble.com/T5%3A-AJAX-Zone-updating-doesn%27t-work-correctly-in-IE-tp16537464p16537464.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to