Apex: обновление компонента при перерисовке страницы - PullRequest
0 голосов
/ 24 мая 2018

снова, милые люди.

Возникла проблема с обновлением компонента apex: при обновлении страницы, и я не могу понять, что с ним делать.

Мы попробовали все, начиная от помещения компонента в outputPanel и добавляя его к атрибуту rerender, перезагружая всю страницу с помощью oncomplete, используя функцию window.reload (что-то в этом роде), и даже пытаясь принудительно выполнить перезагрузку с помощью setTimeout.

Несмотря на то, что я могу перезагрузить саму всю страницу, компонент никогда не перезагрузится, пока вы на самом деле не поднимитесь и не нажмете кнопку «Обновить» в браузере.

Демонстрациякод ниже:

<apex:page controller="myController" id="thePage" showHeader="false" sidebar="false" applyHTMLTag="false" standardStylesheets="false" action="{!onStart}">
    <apex:composition template="myTemplate">
        <apex:define name="header">
            <c:myHeader fixed="true"  language="{!langPref}" filling="true" timeout="true" /> <!--appStatus="{!app.App_Status__c}"-->
        </apex:define>

        <apex:define name="sidebar" >
            <c:mySidebar id="theSidebar" applicationCurrentStage="{!currentStage}" applicationMaxStage="{!app.Application_Stage__c}" stages="{!appPagesMetadata}" memberSegmentedStages="{!memberSegmentedStages}" stagesToInvalidate="{!stagesToInvalidate}" currentMemberIndex="{!memberIndex}" members="{!members}" application="{!app}"/>
        </apex:define>

        <apex:define name="contents">
            <p>There's totally some stuff in here.</p>

            <div class="form-group">
                    <div class="col-lg-12">
                        <apex:commandButton action="{!save}" value="{!$Label.Save_Progress}" rerender="thePage" rendered="{!app.Application_Stage__c==NEW_STAGE && !guestUser}" oncomplete="myJS.afterSave({!isSaved},false);" status="blockStatus" />
                        <!--Functionality to Save and go Next-->
                        <apex:commandButton action="{!saveAndNext}" value="{!IF(previousStage==app.Application_Stage__c||app.Application_Stage__c==NEW_STAGE,$Label.Save_Next_btn ,$Label.Save_Progress)}" rerender="theForm" oncomplete="myJS.afterSave({!isSaved},true);" status="blockStatus" rendered="{!NOT(guestUser) || NOT(captchaEnabled)}" />
                        <apex:commandButton action="{!verifyCaptcha}" value="{!IF(previousStage==app.Application_Stage__c||app.Application_Stage__c==NEW_STAGE,$Label.Save_Next_btn,$Label.Save_Progress)}" rerender="thePage" oncomplete="myJS.afterSave({!isSaved},true);" status="blockStatus" rendered="{!guestUser && captchaEnabled}" />
                        <apex:actionFunction action="{!nextPage}" name="nextPage" status="blockStatus" />
                        <!--Functionality to Go To Page based on Sidebar preference-->
                        <apex:actionRegion renderRegionOnly="true">
                            <apex:outputPanel id="fastRerenderPanel" />
                            <apex:actionFunction action="{!findPage}" name="goToPage" status="blockStatus" reRender="fastRerenderPanel" oncomplete="redirectToPage();">
                                <apex:param name="goToPage" id="goToPage" assignTo="{!goToPage}" value="" />
                                <apex:param name="memberIndexNavigation" id="memberIndexNavigation" assignTo="{!memberIndex}" value="" />

                            </apex:actionFunction>
                            <apex:actionFunction action="{!redirectToPage}" name="redirectToPage" status="blockStatus" />
                        </apex:actionRegion>

                        <apex:actionStatus id="blockStatus" onstart="myJS.blockScreen();" onstop="myJS.unblockScreen();" />
                    </div>

                </div>

        </apex:define>
    </apex:composition>
</apex:page>

Еще раз спасибо всем.

...