I am using the mixin zoneRefresh and AjaxResponseRenderer to update zone pricesZone and zone currentTimeZone.
( I have read the excellent blog by Taha on AjaxResponseRenderer.) But I get the following error. Ajax failure: Status 200 for http://localhost:8080/tapestry5Demo/test/core/mixin/stockwatcher2.priceszone:zonerefresh: undefined Communication with the server failed: undefined <t:zone t:id="pricesZone" id="pricesZone" t:update="show" t:mixins="ZoneRefresh" t:period='3'> <table class="watchList" cellpadding="6"> ...... <tr class="watchListHeader"> <td class="watchListHeader">Symbol</td> <td >Price</td> <td class="watchListNumericColumn">Change</td> <td class="watchListRemoveColumn">Remove</td> </tr> <tr t:type="loop" source="stockPrices" t:id="stockPrices" value="stockPrice"> <td> ${stockPrice.symbol} </td> <td class="watchListNumericColumn" ><t:output value="stockPrice.price" format="priceFormatter"></t:output> </td> <td style="${changeStyle}" class="watchListNumericColumn"> <t:output value="stockPrice.change" format="changeFormatter"/> (<t:output value="stockPrice.changePercent" format="changeFormatter"/>%) </td> <td class="watchListRemoveColumn"> <t:actionlink t:id="remove" context="stockPrice.symbol" t:zone="pricesZone" class="gwt-Button gwt-Button-remove" > x </t:actionlink> </td> </tr> </table> </t:zone> <t:zone t:id="currentTimeZone" t:update="show" id="currentTimeZone"> Last update : ${currentTime} </t:zone> In java class : @InjectComponent private Zone pricesZone; protected void onRefreshFromPricesZone() { refreshWatchList(); if (request.isXHR()) { // This does not work ajaxResponseRenderer.addRender(currentTimeZone).addRender(pricesZone); } } Is it meant to be an error ? Any explanation on why the above does not work would be appreciated ! However, the following works. protected Object onRefreshFromPricesZone() { refreshWatchList(); if (request.isXHR()) { ajaxResponseRenderer.addRender(currentTimeZone); return pricesZone.getBody(); } return null; } If the table, in zone pricesZone, is wrapped in a block, then the following also works. protected void onRefreshFromPricesZone() { refreshWatchList(); if (request.isXHR()) { ajaxResponseRenderer.addRender("currentTimeZone", timeBlock). addRender("pricesZone", pricesBlock); } } Thanks in advance for any assistance! Shing --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org