Re: Really weird Ajax update problem
Re: Really weird Ajax update problem
- Subject: Re: Really weird Ajax update problem
- From: Pascal Robert <email@hidden>
- Date: Thu, 20 Sep 2012 08:22:03 -0400
You are not calling your own sub-component(s) in your example. Like I said, I don't have the problem if I simply call dynamic elements from WO/Wonder, I have the problem if I include my own sub-components, be them stateless or not.
> there is something weird, I tried yesterday a very similar stuff and no issues
>
> <div id="cartView">
> <wo:AjaxPing targetContainerID="totalUpdateContainer" cacheKey="$cacheKey" frequency=1000 stop="false" />
> <h1>Your cart</h1>
> <div id = "cart">
> <wo:form action = "$updateCart" multipleSubmit = "true">
> <table class="list">
> <tr>
> <th class="image">Image</th>
> <th class="title">Title</th>
> <th class="quantity">Quantity</th>
> <th class="price">Price</th>
> <th class="total">Total</th>
> <th class="remove">Remove</th>
> </tr>
> <wo:loop list="$cartDisplayGroup.displayedObjects" item = "$aCartItem" index = "$rowIndex">
> <tr> // AjaxUpdateContainer could be here but cause obviously flickering on update
> <td class="image"><wo:image src="$aCartItem.product.image.thumbnail.fileUrl" /></td>
> <td class="title"><wo:string value = "$aCartItem.product.title" /></td>
> <td class="quantity">
> <wo:AjaxObserveField updateContainerID = "$rowID" observeFieldFrequency = "1" fullSubmit = "true" >
> <wo:textfield class="quantity" value = "$aCartItem.quantity" />
> </wo:AjaxObserveField>
> </td>
> <td class="price">€ <wo:string value = "$aCartItem.frozenPrice" numberformat = "#0.00" /></td>
> <td class="total">
> <wo:AjaxUpdateContainer elementName = "span" id="$rowID">€ <wo:string value = "$aCartItem.totalDacPrice" numberformat = "#0.00" /></wo:AjaxUpdateContainer>
> </td>
> <td class="remove"><wo:link action="$removeFromCart">Remove</wo:link></td>
> </tr>
> </wo:loop>
> </table>
> <wo:AjaxUpdateContainer id = "totalUpdateContainer" style="margin-top:30px">
> <table class="list">
> <tr>
> <td class="grandTotalText">TOTAL</td>
> <td class="grandTotal">€ <wo:string value = "$session.getAuthenticatedReseller.workingCart.totalPrice" numberformat = "#0.00" /></td>
> </tr>
> <tr>
> <td class="grandTotalText">TAXES</td>
> <td class="grandTotal">€ <wo:string value = "$session.getAuthenticatedReseller.workingCart.taxes" numberformat = "#0.00" /></td>
> </tr>
> <tr>
> <td class="grandTotalText">GRAND TOTAL</td>
> <td class="grandTotal">€ <wo:string value = "$session.getAuthenticatedReseller.workingCart.totalPriceWithTaxes" numberformat = "#0.00" /></td>
> </tr>
> </table>
> </wo:AjaxUpdateContainer>
> <div id="buttons">
> <p><wo:submit class="update" action = "$updateCart" value = "Update quantities" /></p>
> <p><wo:submit class="checkout" action = "$submitOrder" value = "CheckOut" /></p>
> </div>
> </wo:form>
> </div>
> </div><!-- /cartView -->
>
> On 20/set/2012, at 13:10, Pascal Robert <email@hidden> wrote:
>
>> I moved to stateless for the sub-component (by extending from ERXStatelessComponent) and it still calls the sub-component for all rows instead of the table row I'm updating. And the table is now all divs.
>>
>>> Possible cause would be binding synchronisation.
>>> Try to disable automatic sync binding on TestsPascal, or trace and debug those sync calls to see if they are causing this.
>>>
>>> --
>>> jfv
>>>
>>> Le 2012-09-18 à 14:27, Pascal Robert a écrit :
>>>
>>>> Hi guys,
>>>>
>>>> I have a table with a chunk of AjaxUpdateContainer and AjaxObserveField in it. Each row have its own AjaxUpdateContainer, so when a observe field action is triggered, I'm calling a sub-component to fill one of the columns.
>>>>
>>>> Problem is: if the table have 10 rows, the sub-component is called 10 times instead of updating just the row where I put some text in the field that is observed. But the weird thing is that if instead of calling my sub-component and I call a
>>>>
>>>> The problem:
>>>>
>>>> <wo:form>
>>>> <wo:AjaxUpdateContainer id="main_table">
>>>> <table style="width: 100%;">
>>>> <wo:loop list="$childsSpec" item="$childSpec">
>>>> <wo:AjaxUpdateContainer class="row" elementName="tr" id="$childSpec.spec.ID">
>>>> <td class="full-height">
>>>> <table width="100%">
>>>> <td class="parts_column">
>>>> <ul>
>>>> <wo:loop list="$~availablesPartsForSpec(childSpec.spec)" item="$partItem">
>>>> <li>
>>>> <wo:AjaxObserveField updateContainerID="$childSpec.spec.ID" action="$~addPartsFromLot(partItem)">
>>>> <wo:textfield value="$quantityToAdd" size="4" numberformat="#" style="padding: 0px; margin: 0px;" />
>>>> </wo:AjaxObserveField>
>>>> </li>
>>>> </wo:loop>
>>>> </ul>
>>>> </td>
>>>> <td class="manifest_column"> <wo:TestsPascal texte="allo" /> </td>
>>>> </tr>
>>>> </table>
>>>> </td>
>>>> </wo:AjaxUpdateContainer>
>>>> </wo:loop>
>>>> </table>
>>>> </wo:AjaxUpdateContainer>
>>>> </wo:form>
>>>>
>>>> If I change this:
>>>>
>>>> <wo:TestsPascal texte="allo" />
>>>>
>>>> to this:
>>>>
>>>> <wo:str value="$~someMethodThatReturnAString" />
>>
>>
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list (email@hidden)
>> Help/Unsubscribe/Update your Subscription:
>>
>> This email sent to email@hidden
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden