2009-12-02 8 views
0

Ok une autre question DOMQuery. Je pense que les docs de l'API EXT sont un peu rares sur ce sujet.Ext JS -DOM question de requête

A l'intérieur de mon FormPanel, j'ai plusieurs ensembles de champs, mais je dois trouver celui qui a un titre d'en-tête 'Résultats de test'. Est-ce que quelqu'un sait si Ext fournit une fonction d'aide pour faire quelque chose comme ça ou vais-je besoin de faire quelque chose comme formPanel.findByType("fieldset", true), puis faire un pour chaque boucle à la recherche de ce titre particulier ...?

Merci!

+0

Si vous savez quel fieldset vous avez besoin en fonction du titre, pourquoi ne pas lui donner un identifiant et utiliser Ext.getCmp ('my-fieldset')? BTW, si vous regardez les documents DomQuery, cela explique pourquoi ils sont "rares" - cette question n'a rien à voir avec DomQuery;) –

+0

Bien que ma réponse ci-dessous réponde à votre question, je suis d'accord avec bmoeskau qui fait référence à FieldSet directement par ID est probablement un moyen plus élégant d'arriver à votre objectif. – owlness

+0

merci, oui, cette application dans laquelle je travaille est un site EXT 'data-drive', et nous ne supportons pas actuellement de donner les identifiants uniques de Fieldset. nous laissons EXT créer à la volée. C'est pourquoi je ne connais pas l'identifiant. merci – 29er

Répondre

2

En utilisant la méthode de recherche de Ext.form.FormPanel:

var fieldSets = formPanel.find('title', 'Test Results'); 

Soyez conscient que la valeur de retour est un tableau d'objets trouvés.

Une façon un peu plus paranoïaque en utilisant la méthode de recherche de Ext.util.MixedCollection:

var fieldSet = formPanel.items.find(function(item) { 
    return item instanceof Ext.form.FieldSet 
     && item.title == 'Test Results'; 
}); 

Ici, la valeur de retour est que le premier élément trouvé.

+0

a bien fonctionné. Merci! – 29er