ifforce中的if-else条件块

时间:2015-04-06 12:45:41

标签: salesforce visualforce

我曾经使用过c:if,c:当jsp中的JSTL标签时。但我不知道是否有任何类似的可视力页面。例如,我正在为jsp提供示例代码。 -

    <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页面中缺少这种页面块准备。

4 个答案:

答案 0 :(得分:6)

我发现我们可以对任何块使用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 :(得分:4)

与此处的其他答案相同的概念,但您可以使用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>

答案 2 :(得分:1)

在visualforce中,您可以使用一些逻辑运算符和函数。 Explanation here

你需要&#34;逻辑功能&#34;列表,您提供的相同代码,在VF中必须如下所示:

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

答案 3 :(得分:0)

你需要将逻辑放在控制器中(大多数人都认为它属于任何地方)。您的VF看起来像:

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

在你的控制器中,在getter中定义你的逻辑:

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