You should @InjectComponent private Zone otherCommentsZone and return otherCommentsZone.getBody() from your onSuccess handler method after checking whether this is a XHR request (@Inject Request and do request.isXHR()).

Uli

On 01.02.2010 09:29 schrieb lebenski:

I have a loop that contains a form and a zone.  In each iteration of the
loop, submission of that form should update it's relevant zone:

<t:loop source="draft.draftPicks" value="draftPick" volatile="true">
    <t:form t:id="pickCommentForm" context="draftPick" t:zone="${zoneId}">
     ...
     <t:submit/>
    </t:form>
    <t:zone t:id="otherCommentsZone" id="${zoneId}">
        <div class="otherCommentsBody">
           ...
        </div>
    </t:zone>
</t:loop>

        Object onSuccessFromPickCommentForm(DraftPick draftPick) {
                createPickComment(draft.get(draftPick.getPackNumber(),
draftPick.getPickNumber()));

                loadDraft();
                
                return otherCommentsZone;
        }

So i'm binding the zone parameter of the form to the generated client id
(not the component id) as suggested in the documentation here:

http://tapestry.apache.org/tapestry5/tapestry-core/ref/org/apache/tapestry5/corelib/components/Zone.html

After I submit the form the page refreshes rather that updating the zone.
The loop runs 45 times so I end up with 45 micro forms and 45 zones on my
page.  Can anyone see what I'm doing wrong here?

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

Reply via email to