visualforce 中的 if-else 条件块
if-else conditional block in visualforce
我在 jsp 中使用了 c:if、c:when 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 页面中缺少这种页面块准备。
在 visualforce 中,您可以使用一些逻辑运算符和函数。
Explanation here
您需要 "Logical Functions" 列表,与您提供的代码相同,在 VF 中必须如下所示:
{!IF(salary<=0, "Salary is very low to survive.", "No comment sir")}
您需要将逻辑放在控制器中(大多数人都说它属于控制器)。你的 VF 看起来像:
<table border="0" width="150" height="50" bgcolor="{!bgColorVar}">
然后在您的控制器中,在 getter:
中定义您的逻辑
public string bgColorVar{
get{
//logic
}
set;
}
与此处其他答案的概念相同,但您可以使用 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>
我发现我们可以对任何块使用输出面板 (<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....
我在 jsp 中使用了 c:if、c:when 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 页面中缺少这种页面块准备。
在 visualforce 中,您可以使用一些逻辑运算符和函数。 Explanation here
您需要 "Logical Functions" 列表,与您提供的代码相同,在 VF 中必须如下所示:
{!IF(salary<=0, "Salary is very low to survive.", "No comment sir")}
您需要将逻辑放在控制器中(大多数人都说它属于控制器)。你的 VF 看起来像:
<table border="0" width="150" height="50" bgcolor="{!bgColorVar}">
然后在您的控制器中,在 getter:
中定义您的逻辑public string bgColorVar{
get{
//logic
}
set;
}
与此处其他答案的概念相同,但您可以使用 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>
我发现我们可以对任何块使用输出面板 (<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....