Как искать ребенка в панели в ExtJs - PullRequest
7 голосов
/ 06 февраля 2012

Как узнать, существует ли на панели определенный дочерний элемент (элемент) с использованием идентификатора дочернего элемента.

Скажем, у меня есть родительская панель (id = parentPanel) и несколько панелей в качестве элементов этой родительской панели. Теперь я хотел бы найти, является ли панель с идентификатором 'childPanel09' дочерней по отношению к родительской панели.

[Возможно, без использования итерации]

Примечание: Я использую ExtJs 3.4

Ответы [ 2 ]

11 голосов
/ 06 февраля 2012

Если вы хотите искать только среди прямых потомков parentPanel, вы можете использовать getComponent :

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

Если вы хотите искать не только среди прямых потомков, но и на любом слое в parentPanel, вы можете использовать find :

var childPanel = Ext.getCmp('parentPanel').find('id', 'childPanel09')[0]; // [0] because find returns array
if (childPanel) {
  alert('yes. child exists');
}
2 голосов
/ 15 марта 2016

Ext.Container.find() (из принятого ответа) в порядке с ExtJS 3.4 (именно об этом и был задан вопрос). Однако в ExtJS 4.0 и выше find() было удалено в пользу Ext.Container.query () , что выполняет то же самое.

...