You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Thomas Scheinecker (Commented) (JIRA)" <ji...@apache.org> on 2012/03/19 09:55:38 UTC

[jira] [Commented] (TAP5-1066) Client-Id and Links in Grid not correct when putting a Grid inside a Loop

    [ https://issues.apache.org/jira/browse/TAP5-1066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13232512#comment-13232512 ] 

Thomas Scheinecker commented on TAP5-1066:
------------------------------------------

i ran into the same problem and if i'm not mistaken the problem is the following code within the beginRender method:

...
        if (inPlace && zone == null)
        {
            zone = jsSupport.allocateClientId(resources);

            writer.element("div", "id", zone);

            clientBehaviorSupport.addZone(zone, null, "show");

            didRenderZoneDiv = true;
        }
...

for the first grid the zone field is null so everything will be rendered correctly, but for the following ones the field still holds the assigned value of the first one so the statement won't be entered and therefor no wrapping div (with a unique id) will be created and because the GridColumns render the zone as link property / context all sorting links trigger a zone refresh within the first grid.

a workaround for the sorting problem is setting inline to false, but as that results in full page refreshes this 'solution' is only sub-optimal

i think this problem could be resolved by clearing the zone field in the afterRender or clenaupRender (to let mixins still use this property) method or by making the zone field a parameter so the user can provide a custom zone to update on the sort events
                
> Client-Id and Links in Grid not correct when putting a Grid inside a Loop
> -------------------------------------------------------------------------
>
>                 Key: TAP5-1066
>                 URL: https://issues.apache.org/jira/browse/TAP5-1066
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.2
>            Reporter: Matthias Jell
>
> I write a page with a grid component inside a loop. For every iteration result in the loop I generate a new display bean model as grid model.
> The page will be rendered and it looks fine, but only the first grid getting a client-id and all sorting links of all grids inside the loop use this clientId. 
> In my opinion every grid should have a single clientId.
> ....
> <t:loop source="abc" result="xyz">
>    <t:grid />
> </t:loop>

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira