I had used c:if, c:when JSTL tags in jsp. But I don't know if anything similar is available for visual force pages. just for example I am providing sample code for 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....
I am missing this kind of page block preparation in vf pages.
What I have found that we can use outputpanel (<apex:outputpanel>
) for any block and use the rendered
attribute to handle the condition for loading it.
<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....