apex:selectList

A list of options that allows users to select only one value or multiple values at a time, depending on the value of its multiselect attribute.

Use this component to get user input for a controller method that does not correspond to a field on an sObject. Only <apex:inputField> and <apex:outputField> can be used with sObject fields.

This component supports HTML pass-through attributes using the “html-” prefix. Pass-through attributes are attached to the generated <select> tag.

Example 

1<!-- Page: -->
2<apex:page controller="sampleCon">
3    <apex:form>
4        <apex:selectList value="{!countries}" multiselect="true">
5            <apex:selectOptions value="{!items}"/>
6        </apex:selectList><p/>
7
8        <apex:commandButton value="Test" action="{!test}" rerender="out" status="status"/>
9    </apex:form>
10
11    <apex:outputPanel id="out">
12        <apex:actionstatus id="status" startText="testing...">
13            <apex:facet name="stop">
14                <apex:outputPanel>
15                    <p>You have selected:</p>
16                    <apex:dataList value="{!countries}" var="c">{!c}</apex:dataList>
17                </apex:outputPanel>
18            </apex:facet>
19        </apex:actionstatus>
20    </apex:outputPanel>
21</apex:page>
22            
23/*** Controller: ***/
24    public class sampleCon {
25        String[] countries = new String[]{};
26        //If multiselect is false, countries must be of type String
27        //String countries;
28            
29        public PageReference test() {
30            return null;
31        }
32            
33        public List<SelectOption> getItems() {
34            List<SelectOption> options = new List<SelectOption>();
35            options.add(new SelectOption('US','US'));
36            options.add(new SelectOption('CANADA','Canada'));
37            options.add(new SelectOption('MEXICO','Mexico'));
38            return options;
39        }
40            
41        public String[] getCountries() {
42            //If multiselect is false, countries must be of type String
43            return countries;
44        }
45            
46        public void setCountries(String[] countries) {
47            //If multiselect is false, countries must be of type String
48            this.countries = countries;
49        }
50    }

Attributes 

Attribute NameAttribute TypeDescriptionRequired?API VersionAccess
accesskeyStringThe keyboard access key that puts the selectList in focus. When the selectList is in focus, a user can select or deselect list options. 10.0global
dirStringThe direction in which the generated HTML component should be read. Possible values include “RTL” (right to left) or “LTR” (left to right). 10.0global
disabledBooleanA Boolean value that specifies whether this selectList should be displayed in a disabled state. If set to true, the selectList appears disabled. If not specified, this value defaults to false. 10.0global
disabledClassStringThe style class used to display the selectList component when the disabled attribute is set to true, used primarily to designate which CSS styles are applied when using an external CSS stylesheet. 10.0global
enabledClassStringThe style class used to display the selectList component when the disabled attribute is set to false, used primarily to designate which CSS styles are applied when using an external CSS stylesheet. 10.0global
idStringAn identifier that allows the selectList component to be referenced by other components in the page. 10.0global
labelStringA text value that allows to display a label next to the control and reference the control in the error message 23.0
langStringThe base language for the generated HTML output, for example, “en” or “en-US”. For more information on this attribute, see the W3C specifications. 10.0global
multiselectBooleanA Boolean value that specifies whether users can select more than one option as a time from this selectList. If set to true, users can select more than one option at a time. If not specified, this value defaults to false. If multiselect is true, the value attribute must be of type String[] or a List of strings. Otherwise, it must be of type String. 10.0global
onblurStringThe JavaScript invoked if the onblur event occurs–that is, if the focus moves off of the selectList component. 10.0global
onchangeStringThe JavaScript invoked if the onchange event occurs–that is, if the value of the selectList component changes. 10.0global
onclickStringThe JavaScript invoked if the onclick event occurs–that is, if the user clicks the selectList component. 10.0global
ondblclickStringThe JavaScript invoked if the onclick event occurs–that is, if the user clicks the selectList component twice. 10.0global
onfocusStringThe JavaScript invoked if the onfocus event occurs–that is, if the focus is on the selectList component. 10.0global
onkeydownStringThe JavaScript invoked if the onkeydown event occurs–that is, if the user presses a keyboard key. 10.0global
onkeypressStringThe JavaScript invoked if the onkeypress event occurs–that is, if the user presses or holds down a keyboard key. 10.0global
onkeyupStringThe JavaScript invoked if the onkeyup event occurs–that is, if the user releases a keyboard key. 10.0global
onmousedownStringThe JavaScript invoked if the onmousedown event occurs–that is, if the user clicks a mouse button. 10.0global
onmousemoveStringThe JavaScript invoked if the onmousemove event occurs–that is, if the user moves the mouse pointer. 10.0global
onmouseoutStringThe JavaScript invoked if the onmouseout event occurs–that is, if the user moves the mouse pointer away from the selectList component. 10.0global
onmouseoverStringThe JavaScript invoked if the onmouseover event occurs–that is, if the user moves the mouse pointer over the selectList component. 10.0global
onmouseupStringThe JavaScript invoked if the onmouseup event occurs–that is, if the user releases the mouse button. 10.0global
onselectStringThe JavaScript invoked if the onselect event occurs–that is, if the user selects an option in the selectList component. 10.0global
readonlyBooleanA Boolean value that specifies whether this selectList component is rendered as read-only. If set to true, the list option selections cannot be changed. If not selected, this value defaults to false. 10.0global
renderedBooleanA Boolean value that specifies whether the component is rendered on the page. If not specified, this value defaults to true. 10.0global
requiredBooleanA Boolean value that specifies whether this selectList component is a required field. If set to true, the user must select at least one list option. If not selected, this value defaults to false. 10.0global
sizeIntegerThe number of selectList options displayed at one time. If this number is less than the total number of options, a scroll bar is displayed in the selectList. If not specified, all available options are displayed. 10.0global
skipValidationInRepeatBooleanA Boolean value that specifies whether to skip validation of a selected value. Set this to true if you’re seeing validation errors when selecting a value in a selectList that’s within a repeat component.   
styleStringThe style used to display the selectList component, used primarily for adding inline CSS styles. 10.0global
styleClassStringThe style class used to display the selectList component, used primarily to designate which CSS styles are applied when using an external CSS stylesheet. 10.0global
tabindexStringThe order in which this selectList component is selected compared to other page components when a user presses the Tab key repeatedly. This value must be an integer between 0 and 32767, with component 0 being the first component that is selected when a user presses the Tab key. 10.0global
titleStringThe text to display as a tooltip when the user’s mouse pointer hovers over this component. 10.0global
valueObjectA merge field that references the controller class variable that is associated with this selectList. For example, if the name of the associated variable in the controller class is myListSelections, use value=”{!myListSelections}” to reference the variable. If multiselect is true, the value attribute must be of type String[] or a List of strings. Otherwise, it must be of type String. 10.0global

See Also