Ein JSF-Steuerelement mit einfacher Auswahl, wie zum Beispiel ein Kombinationsfeld oder eine Gruppe von Optionsfeldern an eine EGL-Variable zu binden, ist komplizierter, als ein Eingabe- oder Ausgabesteuerelement zu binden, da Sie zwei EGL-Variablen verwenden müssen: eine für die Optionen im Steuerelement und eine für den ausgewählten Wert.
Im Allgemeinen müssen Sie eine Feldgruppe erstellen, die die Optionen im Steuerelement darstellt, sowie eine einzelne Variable für den Wert der ausgewählten Option. Am einfachsten ist dies möglich, indem eine Feldgruppe mit einer Zeichenfolge definiert und mit den Optionen für das Steuerelement befüllt wird. Lesen Sie dazu den Abschnitt 'Eine Zeichenfolgenfeldgruppe für Auswahloptionen verwenden'. Alternativ können Sie auch eine Feldgruppe mit Datensätzen für die Optionen für das Steuerelement verwenden, indem Sie Felder im Datensatz als im Steuerelement anzuzeigende Option und als Wert für die Auswahl angeben. Lesen Sie dazu den Abschnitt 'Eine Datensatzfeldgruppe für Auswahloptionen verwenden'.
selectionOptions string[4];
selectionOptions string[4]
{"First choice", "Second choice",
"Third choice", "Fourth choice"};
selectedChoice string;
selectionOptions string[4]
{"First choice", "Second choice",
"Third choice", "Fourth choice",
SelectedValueItem = selectedChoice};
Sie können aus 'Kombiniertes Feld' (auch Listenfeld oder Dropdown-Liste genannt), 'Listenfeld - einfache Auswahl' und 'Gruppe von Radioknöpfen' wählen. Die Optionen werden in jedem Fall abhängig von der Anzahl der Elemente in der Liste von Optionen zur Laufzeit dynamisch hinzugefügt.
Sie können prüfen, an welche Variablen das JSF-Steuerelement gebunden ist, indem Sie das Steuerelement durch Anklicken auswählen und dann die Eigenschaftsansicht öffnen. In der Eigenschaftsansicht wird mit dem Feld 'Wert' die Variable dargestellt, die den Wert der ausgewählten Option empfängt, und in der Tabelle von Variablen auf der rechten Seite der Ansicht sind die Variablen aufgelistet, die zum Bereitstellen der Optionen für das Steuerelement verwendet werden.
handler singleSelect type JSFHandler
{view = "singleSelect.jsp"}
selectionOptions string[4]
{"First choice","Second choice",
"Third choice","Fourth choice",
SelectedValueItem = selectedChoice};
selectedChoice string;
outputMessage string;
function getChoice()
outputMessage = "You chose: "
+ selectedChoice;
end
end
Für dieses Beispiel wird vorausgesetzt, dass Sie die Variable 'selectionOptions' auf die Seite gezogen und ein Kombinationsfeld, ein Listenfeld oder eine Optionsfeldgruppe basierend auf dieser Variable erstellt haben. Sie müssen die Variable 'outputMessage' außerdem an ein Ausgabesteuerelement und die Funktion 'getChoice' an eine Schaltfläche auf der Seite binden. Wenn Sie auf die Schaltfläche klicken, wird der Text der im JSF-Steuerelement mit einfacher Auswahl ausgewählten Option im Ausgabesteuerelement angezeigt.Eine Zeichenfolgenfeldgruppe für die Auswahloptionen zu verwenden, ist ein einfaches, aber nicht besonders komfortables Verfahren. Sie müssen die Optionen möglicherweise von Datensatzfeldgruppen abrufen oder einen Wert für die Option verwenden und einen anderen Wert an die Variable für das Auswahlergebnis übergeben. Verwenden Sie in diesem Fall die Datensatzeigenschaft '@SelectionList', um anzugeben, welche Felder im Datensatz für die Option verwendet werden sollen und welche für den Wert der Auswahl verwendet werden sollen.
Gehen Sie wie folgt vor, um eine Datensatzfeldgruppe für die Auswahloptionen zu verwenden:
record optionsRec type BasicRecord
{@SelectionList {labelItem = displayOption,
valueItem = optionValue}}
displayOption string;
optionValue string;
end
Der Datensatz kann andere Felder enthalten, aber Sie müssen zwei dieser Felder als Beschreibung und Wert auswählen.selectionOptions optionsRec[3];
function onPreRender()
selectionOptions[1].displayOption = "Option one";
selectionOptions[1].optionValue = "first option";
selectionOptions[2].displayOption = "Option two";
selectionOptions[2].optionValue = "second option";
selectionOptions[3].displayOption = "Option three";
selectionOptions[3].optionValue = "third option";
end
selectedChoice string;
Der Typ dieser Variable muss mit dem Typ des als 'valueItem' gekennzeichneten Feldes im Satzabschnitt übereinstimmen.selectionOptions optionsRec[3]
{selectedValueItem = selectedChoice};
Sie können aus 'Kombiniertes Feld' (auch Listenfeld oder Dropdown-Liste genannt), 'Listenfeld - einfache Auswahl' und 'Gruppe von Radioknöpfen' wählen. Die Optionen werden in jedem Fall abhängig von der Anzahl der Elemente in der Liste von Auswahloptionen zur Laufzeit dynamisch hinzugefügt.
Sie können prüfen, an welche Variablen das JSF-Steuerelement gebunden ist, indem Sie das Steuerelement durch Anklicken auswählen und dann die Eigenschaftsansicht öffnen. In der Eigenschaftsansicht wird mit dem Feld 'Wert' die Variable dargestellt, die den Wert der ausgewählten Option empfängt, und in der Tabelle von Variablen auf der rechten Seite der Ansicht sind die Variablen aufgelistet, die zum Bereitstellen der Optionen für das Steuerelement verwendet werden.
handler singleSelect type JSFHandler
{view = "singleSelect.jsp",
onPreRenderFunction = onPreRender}
selectionOptions optionsRec[3]
{selectedValueItem = selectedChoice};
selectedChoice string;
outputMessage string;
function onPreRender()
selectionOptions[1].displayOption = "Option one";
selectionOptions[1].optionValue = "first option";
selectionOptions[2].displayOption = "Option two";
selectionOptions[2].optionValue = "second option";
selectionOptions[3].displayOption = "Option three";
selectionOptions[3].optionValue = "third option";
end
function getChoice()
outputMessage = "You chose: "
+ selectedChoice;
end
end
record optionsRec type BasicRecord
{@SelectionList {labelItem = displayOption,
valueItem = optionValue}}
displayOption string;
optionValue string;
end
Für dieses Beispiel wird vorausgesetzt, dass Sie die Variable 'selectionOptions' auf die Seite gezogen und ein Kombinationsfeld, ein Listenfeld oder eine Optionsfeldgruppe basierend auf dieser Variable erstellt haben. Sie müssen die Variable 'outputMessage' außerdem an ein Ausgabesteuerelement und die Funktion 'getChoice' an eine Schaltfläche auf der Seite binden. Wenn Sie auf die Schaltfläche klicken, wird der Text der im JSF-Steuerelement mit einfacher Auswahl ausgewählten Option im Ausgabesteuerelement angezeigt.