You need to sign in to do that
Don't have an account?
dwwright
Boolean logic in VF pages
I want to dynamically render sections of a page based on picklist values. To do that, I'm utilizing the "rendered=" attribute, and evaluating the values of a picklist to determine whether the section should display or not. My code is below
<apex:variable var="SEL" value="My_Object__c.Selection__c"/> <apex:pageBlock id="Section 123" rendered="{!SEL == '123'}"> <h1>This section represents Section 123</h1> </apex:pageBlock>
In this case, I want Section 123 to display whenever the picklist value is "123". Can someone help with this?
Interesting. I was using a standard object, and it worked okay. I've just coded up an example using the objects from the sample recruiting app, and I got the error that you saw, so it seems there is a bit of a disconnect.
However, the following behaved as expected:
<apex:page standardController="Candidate__c"> <apex:outputField value="{!Candidate__c.Education__c}"/> <apex:outputPanel rendered="{!Candidate__c.Education__c=='High school'}"> <br/> <apex:outputText value="Should see this"/> </apex:outputPanel> <apex:outputPanel rendered="{!Candidate__c.Education__c!='High school'}"> <apex:outputText value="Shouldn't see this"/> </apex:outputPanel> </apex:page>
Is this any different to your experience?
All Answers
Try the ISPICKVAL function, without assigning your value to a variable - that's worked for me in the past. E.g.:
{!ISPICKVAL(My_Object__c.Selection__c, '123')}
I tried that, but I've been unsucessful getting the VF page to accept that syntax. The syntax you posted, which in my case looks like this:
rendered="{!ISPICKVAL(Quality_Document__c.Breaker__c,'MSV')}"
returns a message that says "Error: Incorrect parameter for function ISPICKVAL(). Expected Picklist, received Text"... and I'm definitely using a SINGLE picklist field. In desperation I also tried it like this:
<apex:pageBlock id="SDQA178" rendered="{!ISPICKVAL({!Quality_Document__c.Breaker__c},'MSV')}"
But receive just a plain "syntax error." But apparently you've made it work Bob, any pointers?
Interesting. I was using a standard object, and it worked okay. I've just coded up an example using the objects from the sample recruiting app, and I got the error that you saw, so it seems there is a bit of a disconnect.
However, the following behaved as expected:
<apex:page standardController="Candidate__c"> <apex:outputField value="{!Candidate__c.Education__c}"/> <apex:outputPanel rendered="{!Candidate__c.Education__c=='High school'}"> <br/> <apex:outputText value="Should see this"/> </apex:outputPanel> <apex:outputPanel rendered="{!Candidate__c.Education__c!='High school'}"> <apex:outputText value="Shouldn't see this"/> </apex:outputPanel> </apex:page>
Is this any different to your experience?