2016-05-23 7 views
0

Wie erhalten Sie alle Elemente aus dem FormPanel in Extjs 5.0?So erhalten Sie alle Elemente aus dem Formularbereich?

Ext.ComponentQuery.query('#ownform')[0].query('.field').forEach(function(item){}); 

Der Code funktioniert für Textbox und Combobox aber meine Form enthält Grids und Tasten usw.

+0

'var everything = theForm.query ('*');' –

+0

@EvanTrimboli, ich denke, auf diese Weise wählen Sie ALLE Komponenten, einschließlich derjenigen, die zu den anderen Komponenten intern sind (wie Auswahlfeld für Combo)? Gibt es einen Weg dies zu verhindern? –

+0

Wenn Sie nur die Elemente der ersten Ebene des Formulars möchten, gibt es eine Eigenschaft in der Form '.items', die eine Sammlung ist, über die Sie iterieren können. Sie sollten alle Elemente des Formulars mit folgendem Befehl abrufen: 'var formItems = theForm.items'. Siehe doc: http://docs.sencha.com/extjs/5.0/5.0.1-apidocs/#!/api/Ext.form.Panel-property-items – ASP

Antwort

0

Mein Vorschlag für Sie ist, versuchen Sie die Grundform zuerst myform.getForm() zu bekommen und dann getFields verwenden Methode wie im Beispiel unten.

 var form = this.up('form').getForm(); 

     form.getFields().each(function(item){ 
       item.setRawValue('test1'); 
     }); 

Fiddle Example

0

Je nachdem, was Sie unter „alle Elemente aus der Formpanel existieren“ gibt es verschiedene Antworten auf diese Frage.

Wenn Sie alle Nachkomme Elemente/Komponenten:

Ext.ComponentQuery.query('#ownform component'); 

Wenn Sie alle direkten Kinder Elemente/Komponenten wollen:

Ext.ComponentQuery.query('#ownform > component'); 

Bitte beachten Sie die Ext JS 5.0 Ext.ComponentQuery doc für weitere Informationen über buidling Komponente Abfrage-Selektoren.