Startseite / Vorlagenentwicklung / Vorlagensyntax / Systemobjekte / #field

#fieldVerfügbar ab FirstSpirit-Version 5.0

Wichtig Dieses Objekt ist nur innerhalb von Parameter-Angaben von FS_BUTTON-Definitionen in Formularen verfügbar.

Das Systemobjekt #field kann im Zusammenhang mit Instanzen der Eingabekomponente FS_BUTTON verwendet werden, um Inhalte von und Informationen über diese Eingabekomponenten im Formular zu erfragen und z.B. in Skripten zu verarbeiten.

#field wird hierbei im <PARAMS/>-Block einer FS_BUTTON-Definition im Formular-XML verwendet.

Über dieses Systemobjekt wird eine einzelne Eingabekomponente anhand ihres Variablennamens (name-Attribut in der Formular-XML-Definition der Komponente) abgerufen:

#field.st_headline

Dieser Aufruf liefert die Eingabekomponente „st_headline“ als Objekt vom Typ FormField zurück; über die Methoden des Objekts können dann Eigenschaften und Inhalte der Eingabekomponente des aktuellen Elements ausgelesen werden.

Beispiel

In diesem Beispiel wird das Systemobjekt #field verwendet, um die Eingabekomponente „st_headline“ dem Skript „clickhandlerscript“ zu übergeben und innerhalb dieses Skriptes einige Eigenschaften der Komponente zu verwenden.

<!-- Template form definition -->

<CMS_MODULE>
<!-- Define a text box with name "st_headline" -->
<CMS_INPUT_TEXT name="st_headline" >
<LANGINFOS>
<LANGINFO lang="*" label="Headline" />
</LANGINFOS>
</CMS_INPUT_TEXT>

<FS_BUTTON name="st_button" onClick="script:clickhandlerscript">
<LANGINFOS>
<LANGINFO lang="*" label="Button" />
</LANGINFOS>
<PARAMS>
<!-- Pass the component named "st_headline" as a parameter -->
<PARAM name="form_headline">#field.st_headline</PARAM>
</PARAMS>
</FS_BUTTON>
</CMS_MODULE>

Im Formularbereich der Vorlage wird die Eingabekomponente „st_headline“ vom Typ CMS_INPUT_TEXT und die Eingabekomponente „st_button“ vom Typ FS_BUTTON definiert. Innerhalb des <PARAMS/>-Blocks der FS_BUTTON-Definition wird die Eingabekomponente „st_headline“ durch Verwendung des #field-Objekts als Parameter namens „form_headline“ weitergegeben.

Wird das Skript der FS_BUTTON-Komponente ausgeführt, so wird die Eingabekomponente „st_headline“ dem Skript als Variable „form_headline“ übergeben, und aktuelle Attribute und Inhalte der Eingabekomponente können im Skript weiterverarbeitet werden:

// Script clickhandlerscript

operationAgent = context.requireSpecialist(de.espirit.firstspirit.agency.OperationAgent.TYPE);
requestOperation = operationAgent.getOperation(de.espirit.firstspirit.ui.operations.RequestOperation.TYPE);

if (form_headline != null) {
requestOperation.perform(
"Information about component: " + form_headline.getName() +
", current value: " + form_headline.get() +
", is this a default? " + form_headline.isDefault()
);
}

Wird durch die Verwendung des Systemobjekts #field eine Eingabekomponente an ein Skript oder eine Java-Klasse weitergegeben, so wird diese anhand des Parameter-Namens (name-Attribut des <PARAM/>-Tags) zur Verfügung gestellt - im Falle von Skripten direkt als Variable, im Falle von Executable-Klassen über das Map<String, String>-Objekt, das den execute()-Methoden übergeben wird.

Jedes Eingabekomponenten-Objekt ist vom Typ de.espirit.firstspirit.forms.FormField<T> und erhält die Methoden dieses Interfaces.

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.5 | Datenschutz