2012-09-25 62 views
1

我想顯示pageBlockSection「ccBlock」僅當inputField「Gift_ c.PaymentMethod _c」(這是一個下拉)具有某一值 - 即「信用卡」。我已經嘗試了很多方法,但迄今爲止還沒有運氣。在VisualForce使用輸入字段來選擇性地隱藏pageBlocks

<apex:pageBlockSection title="Basic Information" columns="1" > 
     <apex:inputField value="{!Gift__c.Contact__c}"/> 
     <apex:inputField value="{!Gift__c.PaymentMethod__c}" id="payMethod" > 
      <apex:actionSupport event="onchange" reRender="ccBlock, bankBlock" action="{!HideBlock}" /> 
     </apex:inputField> 
    </apex:pageBlockSection> 
    <apex:pageBlockSection title="Credit Card" rendered="{!visi}" columns="1" id="ccBlock"> 
     <apex:inputField value="{!Gift__c.CCType__c}"/> 
     <apex:inputField value="{!Gift__c.CCName__c}"/> 
     <apex:inputField value="{!Gift__c.CCNumber__c}"/> 
     <apex:inputField value="{!Gift__c.CCExpiryMonth__c}"/> 
     <apex:inputField value="{!Gift__c.CCExpiryYear__c}"/> 
    </apex:pageBlockSection> 
+0

您使用的是控制器或控制器擴展? – JCD

+0

控制器擴展。 – Daniel

+0

你還介意粘貼一些代碼嗎,特別是如果你在VF標記中引用的任何字段有任何邏輯的話? – JCD

回答

1

您的解決方案沒有奏效,因爲你試圖重新描繪一個已經牆根的pageBlockSection,這樣你就不能訪問這個部分。爲此,你需要一些「包裝」面板來重新報告。

我preffer做這樣的事情只是一個javascript:

<apex:pageBlockSection title="Basic Information" columns="1" > 
    <apex:inputField value="{!Gift__c.Contact__c}"/> 
    <apex:inputField value="{!Gift__c.PaymentMethod__c}" id="payMethod" onchange="checkValue()"/> 
</apex:pageBlockSection> 

<apex:outputPanel style="display:none;" id="myPanel"> 
    <apex:pageBlockSection title="Credit Card" rendered="{!visi}" columns="1" id="ccBlock"> 
     <apex:inputField value="{!Gift__c.CCType__c}"/> 
     <apex:inputField value="{!Gift__c.CCName__c}"/> 
     <apex:inputField value="{!Gift__c.CCNumber__c}"/> 
     <apex:inputField value="{!Gift__c.CCExpiryMonth__c}"/> 
     <apex:inputField value="{!Gift__c.CCExpiryYear__c}"/> 
    </apex:pageBlockSection> 
</apex:outputPanel> 

<script> 
function checkValue(){ 
    if(jQuery('[id$=payMethod]').val() == 'Credit Card'){ 
     jQuery('[id$=myPanel]').show(); 
    } 
    else{ 
     jQuery('[id$=myPanel]').hide(); 
    } 
} 
</script> 
相關問題