
Für Dropdown-Listboxes und RadioButtonGroups gibt es unterschiedliche Ansätze der Datenbindung, die Datenbindung mittels Index (Index Binding) und die Datenbindung mittels Schlüssel (Key Binding). Aus den Namen der UI-Elemente ist die Variante der Datenbindung erkennbar.
Das Index Binding basiert auf Multiple Nodes. Die Eigenschaft texts wird an ein Attribut innerhalb eines Context-Knotens gebunden, der viele Elemente enthält (Kardinalität = 0..n). Die Menge der Elemente definiert die möglichen Einträge in der Liste und die Lead-Selection das ausgewählte Element, z.B. wird bei einer RadioButtonGroupByIndex für jedes dieser Elemente ein Radiobutton angezeigt. Der ausgewählte Radiobutton wird über die Lead-Selection des Context-Knotens bestimmt. Wenn der Benutzer ein anderes Element anwählt, wird die Lead-Selection entsprechend geändert. Es ist möglich, diese Elemente in eine Tabelle einzubinden. Jede Instanz kann dann auch eine andere Auswahlmenge enthalten.
Beim Umschalten der Auswahl wird die Lead-Selection geändert. Wenn in der Auswahl ein Singleton-Knoten enthalten ist, wird dieser invalidiert.
Beispiele finden Sie im System in der Web-Dynpro-Component WDR_TEST_EVENTS in den Views DropDownByIdx und RadiobtngrpByIdx.
Bei dieser Art der Datenbindung muss die Eigenschaft selectedKey an ein Context-Attribut gebunden werden. Die Texte und Schlüssel werden an Hand der Attribut-Info dieses Attributs bestimmt.
Wenn es sich beim Attributtyp um einen Typ aus dem ABAP Dictionary handelt, dann werden automatisch die Texte aus dem Dictionary gezogen, d.h. für die Anzeige werden die entsprechenden Domänenwerte aus dem Dictionary herangezogen. Dies ist der Standardfall.
Es ist jedoch auch möglich, die Wertemenge selbst festzulegen und somit die Liste dynamisch aufzubauen (siehe auchFestwerte von Attributen):IF_WD_CONTEXT_NODE_INFO=>SET_ATTRIBUTE_VALUE_SETWenn der Datentyp bereits eine Wertemenge hat, dann kann diese lediglich weiter eingeschränkt werden.
Der Wert des Attributs ist der Schlüssel aus der Attribut-Info. Angezeigt wird der dazugehörige Text (Value). Durch Auswahl wird der Wert des Attributs geändert. Bei der Wertemenge werden jeweils Schlüssel (Keys) und Texte (Values) angegeben, so dass der angezeigte Wert nicht dem Wert im Context entsprechen muss (wichtig für die Übersetzbarkeit). Die Struktur der Wertemenge ist also als eine Kollektion von Schlüssel-Text (Key-Value)-Paaren vordefiniert. Im Gegensatz zum Index Binding binden die UI-Elemente gegen ein Context-Attribut, d.h. nicht gegen ein Attribut eines Multiple Node.
Beispiel für die Datenbindung, bei der die Eigenschaft eines UI-Elements, das den Inhalt anzeigen soll, gegen das Attribut gebunden wird:
Bei einer RadioButtonGroupBy Key wird die Eigenschaft selectedKey an ein Context-Attribut gebunden, das eine Wertemenge besitzt, z.B. Domänenwerte aus dem ABAP Dictionary. Bei einem RadioButtonGroupByKey wird dann für jeden einzelnen Schlüssel ein Radiobutton angezeigt. Wird ein Radiobutton ausgewählt, dann wird der dazugehörige Wert an das Context-Attribut zurückgegeben.
Beispiele finden Sie im System in der Web-Dynpro-Component WDR_TEST_EVENTS in den Views DropDownByKey und RadiobtngrpByKey.
Im Gegensatz zum Index Binding, bei dem immer unterschiedliche Texte in einer Tabellenspalte aufgeführt sind, können bei dieser Art der Datenbindung auch die gleichen Texte in einer Spalte aufgeführt sein.