У меня есть setup, где ожидается, что вкладка будет загружена на основе выбора пользователем элемента из дерева левой панели. Моя цель - загрузить только соответствующие элементы в соответствии с выбором пользователя на конкретную вкладку.ExtJs добавить панель в качестве вкладки
В первый раз, я могу добавить элемент, как показано ниже:
var tab = tabs1.getItem('Orders');
tab.remove(0);
tab.add(pane33);
tab.doLayout();
Но, когда пользователь выбирает пункт снова, элемент панели уже удален, а ошибки, как (c.getPositionEl().dom is undefined
).
Ошибка связана с удалением или уничтожением предмета. Кажется, нет возможности заменить элемент вкладки или обновить/перезагрузить панели.
Как с этим справиться?
Спасибо.
Вы предлагаете закрыть, но проблема остается. Потому что, когда мне нужно показывать только конкретную панель в любой момент времени, а tab.hide() скрывает все панели, но я не могу найти способ показывать только выбранные панели или сетки. Например, tab.show (ProductTypesEditorGrid); показывает все скрытые панели. – Natkeeran
Вы можете напрямую отображать/скрывать компоненты, например editorGrid.show(), если у вас есть ссылка, или Ext.getCmp ('component-id'). Show() –
@bmoeskau, можете ли вы помочь с этим? Я не могу заставить Ext.id() работать. Мне также не удалось заставить autoDestroy работать, когда я удаляю вещи. Я где-то читал, что мне, возможно, придется поменять макет на нечто иное, чем на границе, так как добавление компонентов дважды не допускается с помощью макета границы. http://stackoverflow.com/questions/18630245/extjs-4-replace-two-components-in-viewport-items-array-after-button-click – MacGyver