2015-04-06 63 views
3

我曾經使用c:if,c:當jsp中的JSTL標籤。但是我不知道是否有類似的東西可用於視覺頁面。舉個例子,我正在爲jsp提供示例代碼。 -if-else visualforce中的條件塊

<h1>A Demo conditional section code</h1> 
    <c:choose> 
     <c:when test="${param.colorField == 'red'}"> 
     <table border="0" width="150" height="50" bgcolor="#ff0000"> 
      <tr><td>It is red</td></tr> 
     </table> 
     </c:when> 
     <c:when test="${param.colorField == 'blue'}"> 
     <table border="0" width="150" height="50" bgcolor="#0000ff"> 
     <tr><td>It is blue</td></tr> 
     </table> 
    </c:when> 
    <c:when test="${param.colorField == 'green'}"> 
     <table border="0" width="150" height="50" bgcolor="#00ff00"> 
      <tr><td>Green table</td></tr> 
     </table> 
    </c:when> 
    <c:otherwise> 
     <table border="0" width="150" height="50" bgcolor="#000000"> 
     <tr><td>No colour changed</td></tr> 
     </table> 
    </c:otherwise> 
</c:choose> 
<br/> 
and other codes.... 

我在vf頁面中缺少這種頁面塊準備。

回答

3

我發現,我們可以使用outputpanel(<apex:outputpanel>)任何塊,並使用rendered屬性來處理加載它的條件。

<h1>A Demo conditional section code</h1> 
    <apex:outputpanel rendered="{!param.colorField == 'red'}"> 
     <table border="0" width="150" height="50" bgcolor="#ff0000"> 
      <tr><td>It is red</td></tr> 
     </table> 
    </apex:outputpanel> 
    <apex:outputpanel rendered="{!param.colorField == 'blue'}"> 
     <table border="0" width="150" height="50" bgcolor="#0000ff"> 
     <tr><td>It is blue</td></tr> 
     </table> 
    </apex:outputpanel> 
    : 
    : 
and other codes.... 
1

在visualforce中,您可以使用一些邏輯運算符和函數。 Explanation here

你需要「邏輯功能」列表中,相同的代碼,您提供的,在VF必須是這樣的:

{!IF(salary<=0, "Salary is very low to survive.", "No comment sir")} 
+0

好的。在這種情況下,我提供的樣本太簡單了,不能說明我想提到的複雜性。說一個條件,我想以表格的形式顯示一組數據。否則,我會打印一個段落。那又怎麼樣?我想很多包含HTML標記和價值觀等 – 2015-04-07 06:28:30

+1

對於開關的代碼塊一個代碼塊,你可以使用渲染屬性附加傷害 <頂點之間切換:outputPanel渲染=「{工資<=0}"> ... 0}」> ... nickzenko 2015-04-07 06:48:05

0

你需要把邏輯控制器(其中大多數人認爲它屬於無論如何)。你VF會是什麼樣子:

<table border="0" width="150" height="50" bgcolor="{!bgColorVar}"> 

而在你的控制器,在吸氣定義邏輯:

public string bgColorVar{ 
    get{ 
     //logic 
    } 
    set; 
} 
1

相同的概念放在這裏其他的答案,但你可以使用呈現的屬性上PageBlock渲染該塊或不:

<apex:pageBlock rendered="{!object.Color == 'red'}"> 
    it is red 
</apex:pageBlock> 
<apex:pageBlock rendered="{!object.Color == 'blue'}"> 
    it is blue 
</apex:pageBlock> 
<apex:pageBlock rendered="{!object.Color == 'green'}"> 
    it is green 
</apex:pageBlock>