Die folgende Fehlermeldung tritt in einer ExtJS Anwendung häufig dann auf, wenn in einem Form-Element andere Elemente (wie z.Bsp. ein "Ext.grid.Grid") eingebaut sind:
this.items.items[0] is undefined
Im folgenden Beispiel finden Sie in der 4. Zeile ("isFormField: true") die Lösung für das Problem:
items: [new Ext.grid.GridPanel({ id: "testGrid", autoScroll: true, isFormField: true, height: 200, width: 400, columns: [{
Gehen Sie in Ihrem JS (JavaScript) Quellcode in das Nicht-Form-Element und fügen Sie die Zeile dort ein.
Sollten Sie das Element mit dem Formular auf Gültigkeit testen wollen (Validierung), dann benötigen Sie zusätzlich noch die Funktion "isValid" innerhalb des Elementes. Ansonsten erhalten Sie ggf. diese Fehlermeldung:
field.isValid is not a function
Am Beispiel des oberen "Ext.grid.GridPanel" hier der JavaScript Code:
items: [new Ext.grid.GridPanel({ id: "testGrid", autoScroll: true, isFormField: true, height: 200, width: 400, columns: [...], isValid: function() { // check ... return true; }
Fügen Sie Ihre Prüfungen in Zeile 9 ein und entscheiden Sie durch Ihre Prüfungen, ob das Element gültig ist oder nicht. Dabei können Sie z.Bsp. abfragen, ob mindestens eine Zeile im Grid ausgewählt wurde:
isValid: function() { return Ext.getCmp("testGrid").selModel.selections.length > 0; }