Как завести дочерний компонент активной вкладки вкладки в extjs4? - PullRequest
1 голос
/ 05 ноября 2011

У меня есть простая вкладка.Я хочу получить дочерние компоненты текущей активной вкладки и уничтожить их и doLayout().Следующий код не будет работать:

Ext.getCmp('centertabpanel').getActiveTab().items.destroy();

1 Ответ

2 голосов
/ 06 ноября 2011

Здесь следует иметь в виду, что вкладки в TabPanel в ExtJS просто должны быть BoxComponent в ExtJS 3 или Component в ExtJS 4. Это означает, что вкладкине требуется держать дочерние элементы.Однако, если вы знаете, что на centertabpanel имеются вкладки с Контейнеры , у вас есть два варианта:

Если ваша вкладка представляет собой контейнер, для которого autoDestroy установлено в значение true (то естьпо умолчанию), затем просто используйте:

    Ext.getCmp('centertabpanel').getActiveTab().removeAll();

Если вы хотите установить autoDestroy в значение false, используйте следующий код:

    Ext.getCmp('centertabpanel').getActiveTab().each(function(item, idx, len) {
        item.destroy();
    });

.each() определено для MixedCollection .Он выполнит функцию в первом параметре по отношению ко всем дочерним элементам по порядку.В качестве примечания: если вы вернете false внутри функции, то она остановит всю итерацию элементов.

...