Моего приложения (MVC) предназначено как таковые с 3-мя вкладки на моем взглядеextjs4 колонка скрыть в TreePanel общие для всех вкладок
Ext.define('App.view.cube.MainView', {
extend: 'Ext.panel.Panel',
....
layout: 'card',
...
dockedItems: [{
xtype: 'panel',
items: [{
// a drop down containing 2 choices
}]
}],
items: [{
xtype: 'tabpanel',
itemId: 'mmtabs',
activeTab: 1,
items: [{
title: 'Served',
xtype: 'treepanel', // my own xtype extending this xtype
id: 'Served :',
itemId: '1'
}, {
title: 'UnServed',
xtype: 'treepanel', // my own xtype extending this xtype
id: 'UnServed :',
itemId: '0'
}, {
title: 'Total',
xtype: 'treepanel', // my own xtype extending this xtype
id: 'Total :',
itemId: '2'
}]
}]
});
В принципе выпадающих два варианты должна позволять пользователю просматривать требуемые столбцов в сетка (treepanel). В первый раз, когда приложение загружается, и пользователь переходит к другому варианту в раскрывающемся списке, столбцы не скрываются, как должны. Но если он должен был перейти на другую вкладку, а затем сделать то же самое, все работает так, как предполагается. Я не могу понять проблему.
В коде выше я повторно использовать
xtype : 'treepanel', // my own xtype extending this xtype
через три вкладок с различными itemIds (я надеюсь, что это нормально).
В моем контроллере я есть функция переключения в вид (скрыть/показать конкретные столбцы) initialview (перебора всех столбцов во всех вкладках и установить соответствующий вид) changeview ссылаться на выпадающий список в моем представлении.
toggleView: function (cubemwwar, viewId) {
if ("2" == viewId) {
cubemwwar.columns[1].setVisible(false);
cubemwwar.columns[2].setVisible(false);
cubemwwar.columns[3].setVisible(false);
cubemwwar.columns[4].setVisible(true);
cubemwwar.columns[5].setVisible(true);
cubemwwar.columns[6].setVisible(true);
}
if ("1" == viewId) {
cubemwwar.columns[1].setVisible(true);
cubemwwar.columns[2].setVisible(true);
cubemwwar.columns[3].setVisible(true);
cubemwwar.columns[4].setVisible(false);
cubemwwar.columns[5].setVisible(false);
cubemwwar.columns[6].setVisible(false);
}
}, // on controller's onlaunch
initialView: function() {
var numTabs = this.getCubeMainView().query('#mmtabs')[0].items.length;
for (var i = 0; i < numTabs; i++) {
var tab = this.getCubeMainView().query('#mmtabs')[0].items.items[i];
this.toggleView(tab, 1);
}
},
// change views based on user selection
// from the combobox's select event
changeView: function (combo, rec, idx) {
// first time somehow the columns do not hide
// hide/show appropriate columns
// rec[0].data.id .. .possible values 1 and 2 only.
this.toggleView(this.getCubeMainView().query('#mmtabs')[0].getActiveTab(), rec[0].data.id);
},