如果我第一次运行页面,所有的页面块都会显示消息"choose an user,account or 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>谢谢,萨沙
发布于 2015-05-03 18:04:45
我怀疑问题在于您的actionSupport定义中有一些放错了位置的html。更改:
<apex:actionSupport event="onchange" action="{!fetchAccounts}" <u><b>rerender="pbAcc, pbOpp, pbOppD"</b></u>/> 至:
<apex:actionSupport event="onchange" action="{!fetchAccounts}" rerender="pbAcc, pbOpp, pbOppD"/> (这也适用于页面下方的其他actionSupport元素)
https://stackoverflow.com/questions/29946219
复制相似问题