Newer Version Available

This content describes an older version of this product. View Latest

SelectOption Class

A SelectOption object specifies one of the possible values for a Visualforce selectCheckboxes, selectList, or selectRadio component.

Namespace

System

SelectOption consists of a label that is displayed to the end user, and a value that is returned to the controller if the option is selected. A SelectOption can also be displayed in a disabled state, so that a user cannot select it as an option, but can still view it.

Instantiation

In a custom controller or controller extension, you can instantiate a SelectOption in one of the following ways:
  • 1SelectOption option = new SelectOption(value, label, isDisabled);

    where value is the String that is returned to the controller if the option is selected by a user, label is the String that is displayed to the user as the option choice, and isDisabled is a Boolean that, if true, specifies that the user cannot select the option, but can still view it.

  • 1SelectOption option = new SelectOption(value, label);

    where value is the String that is returned to the controller if the option is selected by a user, and label is the String that is displayed to the user as the option choice. Because a value for isDisabled is not specified, the user can both view and select the option.

Example

The following example shows how a list of SelectOptions objects can be used to provide possible values for a selectCheckboxes component on a Visualforce page. In the following custom controller, the getItems method defines and returns the list of possible SelectOption objects:

1public class sampleCon {
2
3 	String[] countries = new String[]{};
4
5 	public PageReference test() {
6 	 	return null;
7 	}
8
9 	public List<SelectOption> getItems() {
10 	 	List<SelectOption> options = new List<SelectOption>();
11 	 	options.add(new SelectOption('US','US'));
12 	 	options.add(new SelectOption('CANADA','Canada'));
13 	 	options.add(new SelectOption('MEXICO','Mexico'));
14 	 	return options;
15  	}
16
17 	public String[] getCountries() {
18  	 	return countries;
19 	}
20
21 	public void setCountries(String[] countries) {
22 	 	this.countries = countries;
23 	}
24
25}

In the following page markup, the <apex:selectOptions> tag uses the getItems method from the controller above to retrieve the list of possible values. Because <apex:selectOptions> is a child of the <apex:selectCheckboxes> tag, the options are displayed as checkboxes:

1<apex:page controller="sampleCon">
2 	<apex:form>
3 	 	<apex:selectCheckboxes value="{!countries}">
4 	 	 	<apex:selectOptions value="{!items}"/>
5 	 	</apex:selectCheckboxes><br/>
6 	 	<apex:commandButton value="Test" action="{!test}" rerender="out" status="status"/>
7 	</apex:form>
8 	<apex:outputPanel id="out">
9 	 	<apex:actionstatus id="status" startText="testing...">
10 	 	 	<apex:facet name="stop">
11 	 	 	 	<apex:outputPanel>
12 	 	 	 	 	<p>You have selected:</p>
13 	 	 	 	 	<apex:dataList value="{!countries}" var="c">{!c}</apex:dataList>
14 	 	 	 	</apex:outputPanel>
15 	 	 	</apex:facet>
16 	 	</apex:actionstatus>
17 	</apex:outputPanel>
18</apex:page>