Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum.composite.form
Dieses Element dient zur Darstellung von Werten und Eingabefeldern in nach Spalten angeordneten Listen. Sie können damit:
agorum.composite.form.element.grid erbt alle Grundeigenschaften von element.
Die beiden Möglichkeiten zur Oberflächengestaltung, agorum.composite.form.element.grid
und agorum.composite.form.element.list
, unterscheiden sich darin, wie Benutzer die Informationen anzeigen lassen und bearbeiten können.
Verhalten | agorumcomposite.form.element.list | agorum.composite.form.element.grid |
---|---|---|
Anzeige von vielen Posten | limitierte Anzeige von Posten auf einer Seite, Blättern auf andere Seiten | Anzeige weiterer Werte durch Scrollen |
Spaltenanzeige | feste Spaltenanzeige aller Spalten | auswählbare Spaltenanzeige, beschränkt auf angezeigte Spalten |
Bearbeitung der editierbaren Felder | Bearbeitung in der Listenansicht | Bearbeitung in der Anzeige eines Postens, der durch Doppelklicken ausgewählt wird (Detailansicht) |
Anzeige von Validierungshinweisen | Anzeige in der Listenansicht bei der Bearbeitung, keine Anzeige für die gesamte Liste | Anzeige in der Detailansicht bei der Bearbeitung, Hervorhebung in der Listenansicht bei fehlerhaften Einträgen |
Tipp: Sie können list meistens einfach durch grid ersetzen. Nur Parameter und Funktionen, die sich auf das Seitenblättern und das direkte Bearbeiten in der Listenansicht beziehen, sind bei grid nicht verfügbar.
Ein Doppelklick auf eine Position (Zeile) öffnet folgende Ansicht:
Ein fehlerhafter Eintrag wird wie folgt in der Detailansicht angezeigt, in diesem Beispiel nach Herauslöschen des erforderlichen Texts in Spalte 1:
Ein fehlerhafter Eintrag wird wie folgt in der Listenansicht angezeigt, in diesem Beispiel nach Herauslöschen des erforderlichen Texts in Spalte 1 in der Detailansicht:
let aguila = require('common/aguila'); // fill test values let testValue = []; for (let i = 0; i < 100; i++) { testValue.push({ col1: { type: 'custom', value: 'Value1_' + i, hidden: false, }, user_ag_tags: null, col2: null, col3: { type: 'custom', value: new Date(), }, col4: 'value1', col5: 'Das ist ein Beispieltext.', col6: { type: 'custom', icon: 'aguila-icon local_airport', }, col7: { type: 'custom', value: '+', }, col8: { type: 'custom', value: 20520.24, }, }); } let form = aguila.create({ width: 1200, height: 600, type: 'agorum.composite.form.basic', elements: [ { type: 'agorum.composite.form.element.grid', name: 'listField', // showError: 'always', // readOnly: true, label: 'Test', // showAppend: true, // showRowDelete: true, // showRowMove: true, // hideHeader: true, // tableWidth: 2000, // general actions actions: { duplicate: true, setColumnValues: true, }, template: [ { type: 'agorum.composite.form.element.text', name: 'col1', label: 'Spalte 1', flexible: true, hidden: false, width: 100, actions: { setColumnValues: false, }, validation: [ { required: true, }, ], }, { // use of metadata type: 'agorum.composite.form.element.text', name: 'user_ag_tags', label: 'Spalte 2', width: 100, }, { // boolean sample type: 'agorum.composite.form.element.boolean', name: 'col2', label: 'Spalte 3', width: 100, text: 'Ja, bitte', readOnlyHidden: true, }, { // date sample type: 'agorum.composite.form.element.date', name: 'col3', label: 'Spalte 4', width: 134, }, { // select sample type: 'agorum.composite.form.element.select', name: 'col4', label: 'Spalte 5', restricted: true, data: [ { value: 'value1', text: 'Wert 1', }, { value: 'value2', text: 'Wert 2', }, { value: 'value3', text: 'Wert 3', }, { value: 'value4', text: 'Wert 4', }, ], width: 134, }, { // textDisplay sample type: 'agorum.textDisplay', name: 'col5', label: 'Spalte 6', width: 200, required: true, }, { // button with icon sample type: 'agorum.composite.form.element.button', name: 'col6', label: 'Spalte 7', icon: 'aguila-icon drive_eta', width: 54, }, { // button with text sample type: 'agorum.composite.form.element.button', name: 'col7', label: 'Spalte 8', value: 'Y', readOnlyHidden: true, width: 54, }, { // number sample type: 'agorum.composite.form.element.number', name: 'col8', label: 'Spalte 9', width: 104, format: ',000.00', calculator: true, }, ], value: testValue, }, ], }); form .down('listField') .on('action', data => { console.log('action', data); }) .on('itemDeleted', data => { console.log('deleted', data); }) .on('itemMoved', data => { console.log('moved', data); }); form;
Zusätzlich zu den Parametern von element können Sie folgende Parameter verwenden:
Parameter | Beschreibung | Mögliche Werte |
---|---|---|
actions | Definiert Aktionen auf Zeilenebene, die ein Benutzer im Kontextmenü ausführen kann. Die Aktionen können global für grid angegeben werden oder auf template-Ebene pro Spalte. | Siehe actions Parameter |
compactHeader | Stellt den Header in der Detailansicht in einer kompakten Form dar. Nur die Symbole für Vor und Zurück sowie die Anzeige der angezeigten Elemente auf der rechten Seite existieren, um Platz zu sparen. | Boolescher Wert, Standardwert: false |
Detailansicht mit kompaktem Header
|
||
hideHeader | Ausblenden der Kopfzeile mit den Spaltennamen in der Detailansicht | Boolescher Wert, Standardwert: false |
Detailansicht mit ausgeblendeter Kopfzeile
|
||
label | Angezeigter Name (Label) der Grid-Liste. Die Anzeige führt dazu, dass das System das grid-Element genauso eingerückt darstellt wie andere Elemente in einer form, wenn die Standardeinstellungen verwendet werden. | Zeichenkette |
showAppend | Blendet das Symbol + zum Hinzufügen von neuen Positionen ein.
|
Boolescher Wert, Standardwert: false |
showRowDelete | Blendet das Symbol Zeile löschen in der Listenansicht im Kontextmenü und in der Detailansicht ein, wodurch Benutzer eine Position aus der Liste löschen können.
|
Boolescher Wert, Standardwert: false |
showRowMove | Blendet die Symbole zum Verschieben von Einträgen in der Listenansicht im Kontextmenü und in der Detailansicht ein, wodurch Benutzer Elemente in der Liste verschieben können.
|
Boolescher Wert, Standardwert: false |
template | Definiert die Darstellung der jeweiligen Spalten einer Zeile in der Tabelle. Darin enthalten sind form-Elemente oder aguila-widgets.
|
Hinweis: Die Spalte name darf nicht mit einem _ (Unterstrich) beginnen. Diese Schreibweise ist ausschließlich für interne Zwecke reserviert. |
value | Übergibt die Werte für die Grid-Liste als Array mit map-Einträgen, die zu der Definition in template passen müssen. | Array
Hinweis: Alle Werte befinden sich im Speicher und verbrauchen somit RAM. |
Parameter | Beschreibung | Mögliche Werte |
---|---|---|
duplicate | Aktiviert die Aktion Zeile duplizieren im Kontextmenü in der Listenansicht und in der Detailansicht, mit der Benutzer die aktuelle Zeile in der Liste kopieren können. Das System übernimmt die Zustände der Zellen, etwa disabled, readOnly, hidden.
|
Boolescher Wert, Standardwert: false |
setColumnValues | Aktiviert das Vererben von Werten einer Spalte nach oben, unten oder in beide Richtungen. Das System übernimmt nur die Werte, nicht die Zustände wie disabled, readOnly, hidden.
|
Boolescher Wert, Standardwert: false |
Alle Events in element gelten. Zusätzlich gelten die folgenden Events.
Event | Beschreibung | Hinweise |
---|---|---|
action | Löst aus, wenn ein Benutzer auf ein Symbol innerhalb der Grid-Liste klickt. | Das System übergibt als Parameter diese Struktur: { name: 'col1', // Spaltenname index: 0, // Position in der Liste (bezogen auf alle Werte) path: [ 0, 'col1' ] // Pfad zum auslösenden Element } |
changed | Löst aus, wenn ein Benutzer einen Wert in einem Feld ändert und das Feld verlässt. Dieses Event löst erst aus, sobald der Benutzer mit seiner Eingabe fertig ist. Bei grid löst das changed-Event unterschiedlich aus:
Für weitere Informationen zu changed siehe agorum.composite.form.element - Grundlegende Eigenschaften |
Das System übergibt als Parameter diese Struktur: { value: 'current value', // aktueller Wert des Felds index: 0, // Index der Zeile, in der die Änderung stattfand name: 'col1', // Name des auslösenden Elements // ist nicht belegt beim input-Event für die Zeile oder ganze grid path: [ 0, 'col1' ] // Pfad zum auslösenden Element } |
input | Löst aus, wenn ein Benutzer einen Wert in einem Feld ändert. Bei grid löst das input-Event unterschiedlich aus:
Für weitere Informationen zu input siehe agorum.composite.form.element - Grundlegende Eigenschaften |
Das System übergibt als Parameter diese Struktur: { value: 'current value', // aktueller Wert des Felds oldValue: 'previous value', // Wert vor der Änderung index: 0, // Index der Zeile, in der die Änderung stattfand name: 'col1', // Name des auslösenden Elements // ist nicht belegt beim input-Event für die Zeile oder ganze grid path: [ 0, 'col1' ] // Pfad zum auslösenden Element } |
itemAppended | Löst aus, wenn ein Benutzer ein Element zu der Grid-Liste hinzufügt. | Das System übergibt als Parameter diese Struktur: { item: [ ... ], // der Wert der neuen Zeile index: 99, // Position in der Liste (bezogen auf alle Werte der Liste), zu der das Element hinzugefügt wurde } |
itemDeleted | Löst aus, wenn ein Benutzer ein Element der Grid-Liste löscht. | Das System übergibt als Parameter diese Struktur: { item: [ ... ], // der Wert dieser Zeile index: 0 // Position in der Liste (bezogen auf alle Werte der Liste), in der das Element zuvor war } |
itemMoved | Löst aus, wenn ein Benutzer ein Element der Grid-Liste verschiebt. | Das System übergibt als Parameter diese Struktur: { item: [ ... ], // der Wert dieser Zeile fromIndex: 0, // Position in der Liste (bezogen auf alle Werte der Liste), bevor das Element verschoben wurde toIndex: 1 // Position nach dem Verschieben } |
valueChanged | Löst aus, wenn sich mindestens ein Wert innerhalb der Listen-Werte ändert. Das System übergibt als Parameter den neuen Wert von value, d. h. das gesamte Array der Grid-Liste.
Tipp: Sie können mit dem Event input gezieltere Informationen darüber erhalten, was der Benutzer in der Liste geändert hat. |
Innerhalb von valueChanged können Sie die value der form oder des Elements nicht ändern, da ansonsten eine Endlosschleife die Folge wäre. Sofern dies dennoch notwendig ist, ändern Sie den Wert über setImmediate. Ignorieren Sie dann zwingend das darauffolgende valueChanged-Event, etwa mit einem Flag oder durch Prüfung des Values auf Änderung. |
Für weitere Informationen zu den Funktionen set und get siehe list Funktionen.