PDA

Vollständige Version anzeigen : dojo.grid und Zend_Dojo_Form


pfufo
05.09.2008, 14:49
moinsen,
folgendes Problem beschäftigt mich:

Ich habe mir ein Formular (Zend_Dojo_Form) nach der offiziellen Dokumentation ( http://framework.zend.com/manual/en/zend.dojo.form.html#zend.dojo.form.examples ) erstellt. Soweit weit, so gut. Funktioniert auch alles wunderbar.:D Jetzt möchte ich in einem der TabContainer eine Tabelle oder besser gesagt eine dojo.grid verwenden. Leider gibt es keine Zend_Dojo_Grid / Zend_Dojo_Form_Decorator_Grid Komponente :(.
Matthew hat in seinem blog über Zend_Dojo gepostet ( http://weierophinney.net/matthew/archives/183-Zend-Framework-1.6.0-Preview,-or,-PHP-4-is-Dead.html ) und dort eine möglichen aufgezeigt wie man eine "externe" Seite, auf der sich ein grid befindet, in den TabContainer läd. Aber irgendwie scheint mir das nicht der Königsweg zu sein :confused: Zum einen "kennt" das Formular die Elemente nicht, die sich auf der "externen" Seite befinden und zum andere habe ich Schwierigkeiten die dojo Elemente zu rendern...

Ich denke da muß eine Zend_Dojo_Grid und / oder Zend_Dojo_Form_Decorator_Grid Komponente her.

Hat vielleicht einer von Euch schon erfahrungen damit und kann mir bei einer Zend_Dojo_Form_Decorator_Grid Komponente helfen?!?!? Oder gibt es evtl. einen anderen Weg?

Nerosmeel
05.09.2008, 16:10
versuch das grid von Hand zu implementieren.
Die Dojo module kannst mit dem ZF laden und die Daten aus dem Form kannst als Json übergeben und das ganze dann rendern.

Vll hilft dir das noch weiter
neue Doku (http://docs.dojocampus.org/dojox/grid)
Dojo Explorer (http://dojocampus.org/explorer/#Dojox_Grid_Basic)

pfufo
06.09.2008, 15:48
Habe mein grid jetzt von Hand implementiert. Mittlerweile bin ich soweit das das grid, nach dem Beispiel von Matthew, in einem Zend_Dojo_Form TabContainer dargestellt wird. Die Daten hole ich mir per RPC und werden als JSON übertragen.
Super, jetzt habe ein grid mit Daten :) Aber auch neue Probleme :mad:
Wenn ich mein Formular abschicke, werden die Eingabedaten, durch den Aufruf der isValid Methode vom dijit-Form-Objekt, auf der client-Seite, überprüft. Nur die Formularfelder in meinem eingebunden grid werden von isValid nicht erfasst. Wie bringe ich dem dijit-Form-Objekt bei, das auch die Felder im grid mit validiert werden sollen und natürlich auch mit zum Server übertragen werden?

solarfriend
03.09.2009, 16:34
Bin jetzt auch soweit, dass mein DataGrid in nem Container (Accordion) angezeigt wird. In meinem Grid befinden sich Comboboxen. Deren Daten möchte ich zusammen mit den Containerdaten versenden. Es kommen allerdings nur die Daten des Conatiners an. Die des enthaltenen DataGrids fehlen. Hat jemand einen Ansatz, bzw. einen Codeschnippsel, der mir weiterhilft.

Danke für die Antwort

patrick
09.09.2009, 16:25
Das Grid speichert seine Daten in einem dojo.store. Jeder Store mit Write API hat eine save(), saveCustom() und saveEverything() Methode wenn ich mich jetzt richtig erinnere. Darüberhinaus gibt es noch die onSet(), onNew() und onDelete() Methoden. Diese müssen im Store von euch implementiert werden, das speichern der Daten erfolgt dann per js über Ajax.