Das Fragment getClickedRowValue im EGL-Fach der Snippets-Ansicht ist eine Funktion, die für eine angeklickte Zeile in einer
Datentabelle den mit Hyperlink verknüpften Wert abruft.
Dieses Fragment muss in einen EGL-JSF-Handlerabschnitt eingefügt werden. Es gelten folgende Voraussetzungen für das Fragment:
- Die JSP enthält eine Datentabelle.
- Die Namen der JSP-Bezeichner sind die Standardnamen.
- Die Seite ist in der Datei 'faces-config.xml' als request im Geltungsbereich und nicht als session definiert.
Gehen Sie wie folgt vor, um dieses Fragment einzufügen
und zu konfigurieren:
- Definieren Sie in einem JSF-Handler eine Zeichen- oder Zeichenfolgevariable zum Abrufen des Wertes für angeklickte Elemente.
- Setzen Sie den Cursor im JSF-Handler in eine leere Zeile, in der eine Funktion hinzugefügt werden darf. (Dieses Fragment enthält eine vollständige EGL-Funktion.)
- Doppelklicken Sie im EGL-Fach der Snippetsicht auf das Fragment 'Wert der Zeile ermitteln, auf die geklickt wurde'. Das Fenster 'Vorlage einfügen' wird geöffnet. Weitere Informationen hierzu finden Sie im Artikel EGL-Codefragmente einfügen.
- Geben Sie im Fenster 'Vorlage einfügen' den Namen der Variable als Wert für die Variable receivingVar ein.
- Klicken Sie auf 'Einfügen'.
- Fügen Sie in der Palettenansicht im Fach 'Erweiterte Faces-Komponenten' einen Befehls-Hyperlink auf ein Feld in der Datentabelle ein.
- Geben Sie als Ziel des Befehls-Hyperlinks den Namen der JSP an. Der Hyperlink ist mit der Seite verknüpft, auf der er sich befindet.
- Fügen Sie einen Parameter zum Hyperlink hinzu und benennen Sie den Parameter genauso wie die Variable im JSF-Handler, mit dem die Werte für angeklickte Elemente abgerufen werden.
- Legen Sie in der Eigenschaftsansicht auf der Registerkarte 'Alle' die Eigenschaft action auf die Funktion getVal() fest.
Mit diesem Fragment wird der folgende Code eingefügt:
function getVal()
javaLib.store((objId)"context",
"javax.faces.context.FacesContext",
"getCurrentInstance");
javaLib.store((objId)"root",
(objId)"context", "getViewRoot");
javaLib.store((objId)"parm",
(objId)"root",
"findComponent",
"form1:table1:param1");
recVar = javaLib.invoke((objId)"parm",
"getValue");
end