+ Start a Discussion
Ram Manohar GRam Manohar G 

Disable specific picklist in pageblocktable. Visualforce apex

Hi ,
I have a pageblock table contains picklist column. If the picklist in a column contains only one value it should be disabled .How can i achive this 

Eg:
<apex:column header=' '>
<apex:selectList value="{!selectedCountry}" multiselect="false" > <apex:selectOptions value="{!CountriesOptions}"/> </apex:selectList>
</apex:column>
James LoghryJames Loghry
You'll want to use the rendered attribute on either the apex:column (for hiding the entire column) or on the apex:selectList (a blank column, without the picklist).

The rendered attribute might look something like:
 
rendered="{!AND(NOT(countriesOptions.empty),countriesOptions.size > 1)}"

 
Antonio ManenteAntonio Manente
You could go James' route and not render the elements. One option I could think of is to utilize the 'disabled' attribute on a selectList.
 
<apex:column header=' '>
  <apex:selectList value="{!selectedCountry}" multiselect="false" disabled="{!oneOption}">
    <apex:selectOptions value="{!CountriesOptions}"/> 
  </apex:selectList>
</apex:column>
And in your controller implement a check to set the "oneOption" variable to true when there is only one 'CountriesOptions' object in the List and false otherwise.