You need to sign in to do that
Don't have an account?
How can I ensure all the actionSupport completed before Apex:commandlink get executed?
Hi,
I am not sure this is a right place or not, but let me explain about this.
I have Apex page and apex component . Click here to see my page structure.
At page level I have tab that constructed dynamically and component like simplified code below.
Tab code at page level
<apex:repeat value="{!segmentSelected}" var="seg"> <li class="{!IF(ISNULL($CurrentPage.parameters.segmentTab) && rowNum == 1,'ui-tabs-active',IF($CurrentPage.parameters.segmentTab == seg,'ui-tabs-active',''))}" style="padding: 0px !important;"> <span style="float:left;font-size:14px;align:center;margin-top:5px;margin-left:0px"> <apex:commandLink value="{!seg}" rerender="segment,report"> <apex:param name="segmentTab1" value="{!seg}" /> <apex:param name="segmentTab2" value="{!seg}" /> </apex:commandLink> </span> </li> <apex:variable var="rowNum" value="{!rowNum + 1}"/> </apex:repeat>
Component code
<apex:component controller="MyReport" access="global" allowDML="true"> <apex:repeat value="{!mylist}" var="c"> <td class="comments">
<apex:inputTextArea style="border: none;width:420px;resize:none;" styleclass="txtaresexpone" value="{!c.Comments__c}"> <apex:actionSupport action="{!saveMyList}" status="inProgress" event="onchange" rerender="dummy"> </apex:actionsupport> </apex:inputTextarea></td> </apex:repeat> </apex:component>
Each tab represent different data with the same Object type.Component will display the detail of the Object based on the tab.Example the user click Tab 1 contain value Emp Name, the component will render the Emp Detail that belong to Tab 1.
The issue is when user update multiple field of Emp Detail in component and directly click on different tab.The system is using actionSupport to save the detail, and if the user directly click on different tab after updating field from different tab, the system will save some of the detail with the recent clicked tab while the data should belong to previous tab.
How I can control this? Is there any function that will ensure all the actionSupport completed before the apex:commandlink get executed?
Note: I already put actionStatus for every actionSupport but still is not helping.
Thanks,
unidha
Hi firechimp,
That is very nice idea.I also find out using two action support with different event helps me.But I am not sure if it best practise.
All Answers
Hi Unidha,
You could try disabling the click of the tab from the onSubmit event on your actionSupport, then re-enable the click of the tab from the onComplete event on your action support.
For info on action support click Here.
Hope this helps!
Hi firechimp,
That is very nice idea.I also find out using two action support with different event helps me.But I am not sure if it best practise.