Un objet SelectOption spécifie l'une des valeurs possibles pour un composant VisualforceselectCheckboxes, selectList ou selectRadio. Il est composé d'une étiquette affichée pour l'utilisateur final et d'une valeur renvoyée au contrôleur si l'option est sélectionnée Un objet SelectOption peut également être affiché dans un état désactivé, pour permettre à l'utilisateur de le consulter sans pouvoir le sélectionner en tant qu'option.
SelectOption option = new SelectOption(value, label, isDisabled);
où value est la chaîne renvoyée au contrôleur si l'option est sélectionnée par un utilisateur, label est la chaîne affichée pour l'utilisateur dans les options et isDisabled est une valeur booléenne qui, lorsqu'elle est true, indique que l'utilisateur ne peut pas sélectionner l'option, mais qu'il peut la consulter.
SelectOption option = new SelectOption(value, label);
où value est la chaîne renvoyée au contrôleur si l'option est sélectionnée par un utilisateur et label est la chaîne affichée pour l'utilisateur dans les options. Puisque la valeur isDisabled n'est pas spécifiée, l'utilisateur peut consulter et sélectionner l'option.
Les méthodes SelectOption sont toutes appelées et exécutées dans une instance particulière d'un objet SelectOption.
Le tableau ci-dessous présente les méthodes d'instance pour SelectOption.
Nom | Arguments | Type de renvoi | Description |
---|---|---|---|
getDisabled | Boolean | Renvoie la valeur actuelle de l'attribut isDisabled de l'objet SelectOption. Si isDisabled est défini sur true, l'utilisateur peut afficher l'option, mais pas la sélectionner. Si isDisabled est défini sur false, l'utilisateur peut afficher et sélectionner l'option. | |
getEscapeItem | Boolean | Renvoie la valeur actuelle de l'attribut itemEscaped de l'objet SelectOption. Si itemEscaped est défini sur true, les caractères HTML et XML sensibles sont échappés dans la sortie HTML générée pour ce composant. Si itemEscaped est défini sur false, les éléments sont affichés tels qu'ils sont écrits. | |
getLabel | String | Renvoie l'étiquette d'option affichée pour l'utilisateur. | |
getValue | String | Renvoie la valeur d'option qui est renvoyée au contrôleur si l'utilisateur sélectionne l'option. | |
setDisabled | Boolean isDisabled | Void | Définit la valeur de l'attribut isDisabled de l'objet SelectOption. Si isDisabled est défini sur true, l'utilisateur peut afficher l'option, mais pas la sélectionner. Si isDisabled est défini sur false, l'utilisateur peut afficher et sélectionner l'option. |
setEscapeItem | Boolean itemsEscaped | Void | Définit la valeur de l'attribut itemEscaped de l'objet SelectOption. Si itemEscaped est défini sur true, les caractères HTML et XML sensibles sont échappés dans la sortie HTML générée pour ce composant. Si itemEscaped est défini sur false, les éléments sont affichés tels qu'ils sont écrits. |
setLabel | String l | Void | Définit la valeur de l'étiquette d'option affichée pour l'utilisateur. |
setValue | String v | Void | Définit la valeur de la valeur d'option qui est renvoyée au contrôleur si l'utilisateur sélectionne l'option. |
L'exemple suivant montre comment utiliser une liste d'objets SelectOption pour fournir les valeurs possibles d'un composant selectCheckboxes dans une page Visualforce. Dans le contrôleur personnalisé suivant, la méthode getItems définit et renvoie la liste des objets SelectOption possibles :
public class sampleCon { String[] countries = new String[]{}; public PageReference test() { return null; } public List<SelectOption> getItems() { List<SelectOption> options = new List<SelectOption>(); options.add(new SelectOption('US','US')); options.add(new SelectOption('CANADA','Canada')); options.add(new SelectOption('MEXICO','Mexico')); return options; } public String[] getCountries() { return countries; } public void setCountries(String[] countries) { this.countries = countries; } }
Dans le balisage de page suivant, la balise <apex:selectOptions> utilise la méthode getItems du contrôleur ci-dessus pour récupérer la liste des valeurs possibles. Puisque <apex:selectOptions> est un enfant de la balise <apex:selectCheckboxes>, les options sont affichées en tant que cases à cocher :
<apex:page controller="sampleCon"> <apex:form> <apex:selectCheckboxes value="{!countries}"> <apex:selectOptions value="{!items}"/> </apex:selectCheckboxes><br/> <apex:commandButton value="Test" action="{!test}" rerender="out" status="status"/> </apex:form> <apex:outputPanel id="out"> <apex:actionstatus id="status" startText="testing..."> <apex:facet name="stop"> <apex:outputPanel> <p>You have selected:</p> <apex:dataList value="{!countries}" var="c">{!c}</apex:dataList> </apex:outputPanel> </apex:facet> </apex:actionstatus> </apex:outputPanel> </apex:page>