Salesforce 重新加载页面块

Salesforce 重新加载页面块,salesforce,Salesforce,如果我第一次运行页面,所有页面块都会显示消息“选择用户、帐户或opp”,因为没有选择任何内容。但如果我已经选择了用户、帐户或opp,页面块将显示帐户或opp的列表/详细信息。 如果我更改顶部的用户,我希望所有面板/页面块都将重置,但我如何才能做到这一点? 我将所有页面块都添加到了rerender函数中,但它不起作用。我的代码有什么问题 <apex:form > <apex:pageBlock id="pbUser"> <apex:pageBlockSect

如果我第一次运行页面,所有页面块都会显示消息“选择用户、帐户或opp”,因为没有选择任何内容。但如果我已经选择了用户、帐户或opp,页面块将显示帐户或opp的列表/详细信息。 如果我更改顶部的用户,我希望所有面板/页面块都将重置,但我如何才能做到这一点? 我将所有页面块都添加到了rerender函数中,但它不起作用。我的代码有什么问题

<apex:form >

<apex:pageBlock id="pbUser">
    <apex:pageBlockSection >
        <apex:OutputPanel >
            <apex:selectList value="{!SelectedUserId}" size="1" multiselect="false">
                <apex:selectOptions value="{!ListOfUser}" /> 
                <apex:actionSupport event="onchange" action="{!fetchAccounts}" <u><b>rerender="pbAcc, pbOpp, pbOppD"</b></u>/>              
            </apex:selectList>
        </apex:OutputPanel>
    </apex:pageBlockSection>
</apex:pageBlock>

<apex:pageblock <u><b>id="pbAcc"</b></u>>
    <apex:pageBlockSection rendered="{!IF(AccList.size >0,true,false)}" id="pbsAcc">
        <apex:outputpanel style="overflow:scroll;height:200px;" layout="block" id="panelAcc">
            <apex:pageblocktable value="{!AccList}" var="Acc" onRowClick="highlightAcc(this)">
                <apex:column headervalue="Name">
                    <apex:outputField value="{!Acc.Name}"/>
                    <apex:actionSupport event="onclick" action="{!fetchOpps}" <u><b>rerender="pbOpp, pbOppD"</b></u>>
                        <apex:param assignTo="{!SelectedAccountId}" value="{!Acc.Id}" name="SelectedAccountId"/>
                    </apex:actionSupport>
                </apex:column>        
                <apex:column headervalue="Street">
                    <apex:outputfield value="{!Acc.BillingStreet}" />
                </apex:column>
                <apex:column headervalue="City">
                    <apex:outputfield value="{!Acc.BillingCity}" />
                </apex:column>
            </apex:pageblocktable>   
        </apex:outputpanel>
    </apex:pageBlockSection>

    <apex:pageBlockSection rendered="{!IF(AccList.size <1,true,false)}">
        <apex:outputpanel style="overflow:scroll;height:200px;" layout="block">
           Choose a User.
        </apex:outputpanel>
    </apex:pageBlockSection>
</apex:pageblock>

<apex:pageblock <u><b>id="pbOpp"</b></u>>
    <apex:pageBlockSection rendered="{!IF(OppList.size >0,true,false)}" id="pbsOpp">
        <apex:outputpanel style="overflow:scroll;height:200px;" layout="block" id="panelOpp">
            <apex:pageblocktable value="{!OppList}" var="Opp" onRowClick="highlightOpp(this)">
                <apex:column headervalue="Name">
                    <apex:outputfield value="{!Opp.Name}"/>{!Opp.Id}
                    <apex:actionSupport event="onclick" action="{!fetchOppDetail}" <u><b>rerender="pbOppD"</b></u>>
                        <apex:param assignTo="{!SelectedOppId}" value="{!Opp.Id}" name="SelectedOppId"/>
                    </apex:actionSupport>
                </apex:column>        
                <apex:column headervalue="Amount">
                    <apex:outputfield value="{!Opp.Amount}"/>
                </apex:column>
            </apex:pageblocktable>   
        </apex:outputpanel>
    </apex:pageBlockSection>

    <apex:pageBlockSection rendered="{!IF(OppList.size <1,true,false)}">
        <apex:outputpanel style="overflow:scroll;height:200px;" layout="block">
            Choose an account.
        </apex:outputpanel>
    </apex:pageBlockSection>
</apex:pageblock>

<apex:pageblock <u><b>id="pbOppD"</b></u> mode="inlineEdit">
    <apex:pageBlockButtons location="top">
        <apex:commandButton action="{!SaveInlineChanges}" value="Save" id="saveButton"/>
        <apex:commandButton action="{!fetchOppDetail}" value="Cancel" id="cancelButton"/>
    </apex:pageBlockButtons>
    <apex:pageBlockSection rendered="{!IF(OppDetail.size >0,true,false)}" id="pbsOppD">
        <apex:outputpanel style="overflow:scroll;height:200px;" layout="block" id="panelOppD">
            <apex:pageblocktable value="{!OppDetail}" var="OppD">
                <apex:column headervalue="Name">
                    <apex:outputfield value="{!OppD.Name}">
                        <apex:inlineEditSupport showOnEdit="saveButton, cancelButton" hideOnEdit="editButton" event="ondblclick" changedStyleClass="myBoldClass" resetFunction="resetInlineEdit"/>
                    </apex:outputfield>
                </apex:column>        
                <apex:column headervalue="Amount">
                    <apex:outputfield value="{!OppD.Amount}" />
                </apex:column>
            </apex:pageblocktable>   
        </apex:outputpanel>
    </apex:pageBlockSection>

    <apex:pageBlockSection rendered="{!IF(OppDetail.size <1,true,false)}">
        <apex:outputpanel style="overflow:scroll;height:200px;" layout="block">
            Chosse an opportunity.
        </apex:outputpanel>
    </apex:pageBlockSection>
</apex:pageblock>

</apex:form>
谢谢,
Sascha

我怀疑问题在于actionSupport定义中的html放错了位置。更改:

<apex:actionSupport event="onchange" action="{!fetchAccounts}" <u><b>rerender="pbAcc, pbOpp, pbOppD"</b></u>/>              
致:

这也适用于页面下方的其他actionSupport元素

<apex:actionSupport event="onchange" action="{!fetchAccounts}" rerender="pbAcc, pbOpp, pbOppD"/>