Dienstag, 5. Februar 2008

Ext-js Grids

Gestern habe ich wieder eineige Zeit damit verbracht die Daten nach Möglichkeit dynamisch in das Ext-Grid eizuspeisen. Dabei ist an sich folgende Eingabesyntax notwendig:


Ext.grid.dummyData = [

['Altenberg bei Linz','Urfahr-Umgebung',3739,'Marktgemeinde','www.altenberg.at', 'Stadt-Staat',14.35027, 48.37283],
....
];

Dies setzt voraus, dass die Tabelle in den vorrigen Codezeilen bereits korrekt deklariert wurde bzw. wird, was aber ohnehin schon der Fall ist. Daher funktioniert dieses statische Einfügen in die Tabelle auch ohne Probleme, will ich jedoch die Daten die von ajax via http.responseText als String (der bereits richtig mit eckigen Klammern usw. formatiert ist) einfügen "zerhackt" ajax diesen String nach jedem einzelnen Zeichen, was für die Tabelle natürlich nicht zielführend ist!

alle möglichen Änderungen bzw. eine explezite Deklaration als string halfen nicht.
Daher bin ich nach eingen recherchen auf die Idee gekommen den string quasi zu parsen und dann nach folgender weise in die tabelle einzufügen:

man splittet also das eingabearray etwa nach folgendem schema:
var string = http.ResponseText
var array = new Array();
array=string.split(",")
Das Array wird also quasi nach jedem Beistrich zerhackt, wobei der Beistrich entfernt wird und die anderen Daten in ein Array geschrieben werden!

nun funktioniert es tatsächlich die daten in das grid array folgendermaßen "dynamisch" einzuspeisen:

Ext.grid.dummyData = [

[array[0],array[1],array[2]......]
];


Dies hat lediglich den Nachteil, dass der Block in dem die Daten deklariert wrden keine Schleifen oder abfragen zulässt, dies wäre aber aufgrund der ja immer anderen länge des Array eig. erforderlich, vllt. findet sich hier noch ein lösung....

Einen Fehler der beim Absenden des ajax-requests passierte, konnte ich ebenfalls noch ausbessern, der befehl onKeyDown sendete nämlich die Information des Eingabefeldes bereits ab, bevor das neu eingegebene Zeichen im Formular war, dieses Problem lies sich mit onKeyUp lösen.

Generell haben mir hier die Informationen von w3c zur javaScript und html syntax geholfgen:
http://www.w3schools.com/jsref/jsref_split.asp und
http://www.javascriptkit.com/javatutors/string4.shtml

Generell muss ich noch anmerken, dass der FireBug "Debugger" (Firefox Plugin) bei der Entwicklung recht hilfreich ist, er macht z.B. auf syntaxfehler aufmerksam, meldet aber auch fehler bei ajax requests bzw. kann man wie bei einem richtigen Debugger auch Einsprungpunkte setzen und somit den Inhalt von gewissen Variablen zu gewissen Zeiten prüfen!

Keine Kommentare: