2012-02-06 35 views
7

¿Cómo puedo saber si un elemento (elemento) en particular existe en un panel utilizando la identificación del elemento secundario?Cómo buscar un elemento secundario en un panel en ExtJs

Supongamos que tengo un padre paned (id = parentPanel) y pocos paneles como elementos de este panel principal. Ahora, me gustaría buscar si un panel con el id 'childPanel09' es un elemento secundario del panel principal.

[Posiblemente sin utilizar iteración]

Nota: estoy usando ExtJs 3.4

Respuesta

11

Si desea buscar sólo entre niño directos de parentPanel puede utilizar getComponent:

var childPanel = Ext.getCmp('parentPanel').getComponent('childPanel09'); 
if (childPanel) { 
    alert('yes. child exists'); 
} 

Si desea buscar no solo entre niños directos sino también en cualquier capa debajo del panel principal, puede usar find:

var childPanel = Ext.getCmp('parentPanel').find('id', 'childPanel09')[0]; // [0] because find returns array 
if (childPanel) { 
    alert('yes. child exists'); 
} 
+0

Gracias hombre. Aunque mi problema era un poco diferente, pero tu respuesta lo resolvió. –

2

Ext.Container.find() (de la respuesta aceptada) está bien as of ExtJS 3.4 (que es lo que hizo la pregunta). Sin embargo, en ExtJS 4.0 y superior, find() se eliminó a favor de Ext.Container.query(), lo que logra lo mismo.

Cuestiones relacionadas