Re: Really weird Ajax update problem
Re: Really weird Ajax update problem
- Subject: Re: Really weird Ajax update problem
- From: Amedeo Mantica <email@hidden>
- Date: Thu, 20 Sep 2012 14:36:37 +0200
wo:TestsPascal ?
Sent from my iPhone
On 20/set/2012, at 14:22, Pascal Robert <email@hidden> wrote:
> 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