[[esp:extensions:ajax:ajaxtable]] tdb Aplication Server

Route:

    - Funktion ajaxTable()
      - Parameter für den Initial-Aufruf
          - id
          - table
          - subtables
          - records
          - sort
          - style
          - class
          - accessgroup
          - accessid
          - load
          - offset
          - onbeforeload
          - onafterload
          - ondblclick
          - onclick

Funktion ajaxTable()

Wichtig:
Der Bereich wird immer mit einem öffnenten und einem schliessenden ajaxTable() definiert.
Also z.B.
ajaxTable('id="tbl" table="address"')
ajaxColumn('...') ajaxColumn('...') ajaxColumn('...')
ajaxTable('')


Parameter für den Initial-Aufruf

id

Der Parameter id muss angegeben werden. Über ihn wird die Tabelle in JavaScript identifiziert und angesteuert. Es ist dabei zu beachten, dass keine Kollisionen mit anderen JavaScript-Objekten (auch aus anderen JS-Dokumenten) entstehen. Ausserdem bezieht sich der AJAX-Connector bei der Übertragung der Request-Response ebenfalls auf diese ID.
Es empfiehlt sich daher z.B. ein tbl als Prefix, wie hier: id="tblKunden".

Die Angabe von id ist zwingend erforderlich. Der angegebene Wert muss im Dokument eindeutig sein.

table

Der Parameter table bezeichnet die Primärtabelle, die im Tabellenobjekt angezeigt werden soll. Diese muss dabei nicht im ESP-Dokument geöffnet werden, da sie erst zur Laufzeit vom AJAX-Connector verwendet wird. Die Tabelle muss im Context bekannt sein, d.h. im DatabaseDir oder dem Mapping auffindbar sein. Der Name der Tabelle ist ohne deren Dateiendung .DAT anzugeben.

Die Angabe von table ist zwingend erforderlich.

subtables

Mit subtables besteht die Möglichkeit weitere Tabellen zur Darstellung heranzuziehen. Diese müssen, mit Komma voneinander getrennt, als Wert von subtables übergeben werden. Der AJAX-Connector versucht diese dann im Context zu finden und zu öffnen. Das ermöglicht es in den Spalten, die mit ajaxColumn() definiert werden, die tdbengine Linknotation zu verwenden, um Datenfelder aus angekoppelten Tabellen zu verwenden.
Allerdings darf das Ergebnis solch einer Link-Notierten Spalte nur vom Typ String sein. Für die Ausgabe numerischer Werte muss der Umweg über eine mit type="method" call="..." spezifierte Spalte gegangen werden.

records

Mit records wird die Anzahl der Datensätze, die auf einer Seite der Tabelle dargestellt werden sollen, angegeben. Wird records nicht explizit gesetzt, so wird die Tabelle nicht in Seiten unterteilt, sondern vollständig ausgegeben.
Gültige Werte sind ganze Zahlen größer 0. Ist der Wert von records größer als die Anzahl der darstellbaren Datensätze, so werden diese komplett auf einer Seite angezeigt.

Die Angabe von records ist optional.

sort

Der Parameter sort beschreibt, über welche Spalte(n)/Index die Tabelle grundsätzlich sortiert werden soll. Wird dieser Parameter nicht explizit angegeben, so werden auch alle sort-Angaben in ajaxColumn() ignoriert. Die Angabe eine Index-Namen muss mit einem $ beginnen, also z.B. sort="$adressen.ind".

Die Angabe von sort ist optional.

style

CSS-Inline-Angaben können im Attribute style gemacht werden. Dabei werden etwaige CSS-Regeln aus der/den in class angegebenen CSS-Klassen überschrieben.

Beispiel style="width:500px; border-color:green;"

Die Angabe von style ist optional.

class

Mit class können eine oder mehrere CSS-Klassen bestimmt werden, die auf das Tabellenobjekt wirken sollen. Ein class="meineTabellen" belegt die Tabelle also mit der Klasse meineTabellen, die letztlich nur noch "irgendwo" definiert sein muss.

Die Angabe von class ist optional.

accessgroup

Nur im Zusammenhang mit der Extension MKLS macht dieser Parameter Sinn.

accessid

Nur im Zusammenhang mit der Extension MKLS macht dieser Parameter Sinn

load

Wenn false, dann wird die Tabelle zwar erzeugt und dargestellt, die Anforderung der Daten bleibt jedoch aus.
Diese kann dann nachträglich per Javascript angestoßen werden, indem die Methode load() der Tabelle ausgeführt wird.
Dadurch können bei komplexen Formularen gezielt nur die Daten beim Öffnen geladen werden, die sich dem Anwender unmittelbar präsentieren. Tabellen, die sich auf Reitern, im Hintergrund oder in Dialogen befinden, werden nur dann geladen, wenn sie auch wirklich betrachtet werden.

Die Angabe von load ist optional.

offset

Mit offset kann bestimmt werden, bei welchem Datensatz die Darstellung der Daten beginnen soll. offset="21" überspringt also die ersten 20 Datensätze, was bei einer Tabelle mit records="20" genau der ersten Seite entspräche. Interessant ist dieser Parameter vor allem dann, wenn man den Anwender wieder dort beginnen lassen möchte, wo er zuletzt aufgehört hatte.
Bei jeder Datenanforderung einer ajaxTable(), speichert der Ajax-Connector die Werte für offset und sort in der entsprechenden ESP-Session. Mit der Funktion ESPVar("ajax.tblName.offset") (tblName entspricht dem Attribut id) kann er dann zu einem späteren Zeitpunkt wieder gelesen werden.

Beispiel:
ajaxTable('id="tblKunden" table="address" offset="'+ESPVar("ajax.tblKunden.offset")+'"')
Setzt dort auf, wo der Anwender zuletzt gestanden hat, und dann zum Beispiel einen Datensatz in einem Formular geöffnet hatte, dass er nun wieder verläßt.

Die Angabe von offset ist optional

onbeforeload

Erwartet einen Javascript-Aufruf, der unmittelbar vor dem Laden der Daten ausgeführt wird. Dieser könnte zum Beispiel einen bisweilen unsichtbaren Layer in den Vordergrund bringen, der dem Anwender mitteilt, dass nun Daten geladen werden, und er sich kurz gedulden müsse.

Die Angabe von onbeforeload ist optional

onafterload

Erwartet einen Javascript-Aufruf, der unmittelbar nach dem Laden der Daten ausgeführt wird. Damit liese sich der Status-Informations-Layer wie oben beschrieben wieder verstecken.

Die Angabe von onafterload ist optional

ondblclick
Erwarted einen Javascript-Aufruf, der ausgeführt wird, wenn der Anwender auf einer Tabellenzeile einen Doppelklick mit der Maus ausführt.
Der aufzurufenden Funktion können durch Angabe von %Spaltenname% beliebige Werte übergeben werden.

Beispiel
ajaxTable('id="tblAddresses" table="addresses" records="10" ondblclick="openAddressForm(%AutoID%)"') ajaxColumn('src="AutoID" hidden="true"') ajaxColumn('src="Name"') ajaxColumn('src="Firstname"') ajaxTable('')

Die Angabe von ondblclick ist optional.

onclick
Erwarted einen Javascript-Aufruf, der ausgeführt wird, wenn der Anwender auf einer Tabellenzeile einen einfachen Klick mit der Maus ausführt.
Der aufzurufenden Funktion können durch Angabe von %Spaltenname% beliebige Werte übergeben werden.

Beispiel siehe bei ondblclick

Die Angabe von onclick ist optional
esp:extensions:ajax:ajaxtable, Rev. 29, Zuletzt geändert 2006-11-29 09:56, 1161 Aufrufe
Help others to find those things you like

Have you already seen the new Tag it! button on the top right of the wiki pages?

Look into the tag cloud
Wiki hosted for free at wikihost.org || RSS-Feed || GeboGebo 1.3.3 || 00.366 Sekunden || || PAGERANK TOOLS