Создание активного меню
Здравствуйте. Начал изучать ExtJS. По доке создал грид+меню. Как можно навешать на меню ссылки (кликаем на grid выводится табличка, кликаем tabs получаем табы)?
Вот моя вьюха:
Ext.define('AM.view.user.List' ,{
extend: 'Ext.grid.Panel',
alias : 'widget.userlist',
title : 'All Users',
store: 'Users',
columns: [
{header: 'Name', dataIndex: 'name'},
{header: 'Email', dataIndex: 'email'}
],
dockedItems: [{
xtype: 'toolbar',
dock: 'top',
items: [{
text: 'Table',
handler: function () {
alert('Show table');
}
},{
text: 'Edit',
handler: function () {
alert('Show tabs');
}
}]
}]
});
|
У вас уже есть 2 обработчика кнопок вот и реализовывайте в них то что вам надо ..типа: прячем панель1, показывам панель2 и тд и тп...
|
Вам нужно делать иначе. Вы сейчас поместили меню внутрь грида. Если по нажатию кнопки скроете гид, то меню с кнопками пропадёт вместе с ним. Лучше для грида и табов создать общий контейнер. Меню прикрепить к контейнеру. Как-то так:
Файл с определением контейнера:
Ext.define('AM.view.user.Container' ,{
extend: 'Ext.panel.Panel',
alias : 'widget.mycontainer',
layout: 'fit',
items: [
{
xtype: 'userlist',
title : 'All Users',
hidden: false
}, {
xtype: 'mytabpanel',
title : 'Tabs',
hidden: true
}
],
dockedItems: [{
xtype: 'toolbar',
dock: 'top',
items: [{
text: 'Table',
handler: function (button) {
button.up('mycontainer').down('userlist').show();
button.up('mycontainer').down('mytabpanel').hide();
}
},{
text: 'Edit',
handler: function (button) {
button.up('mycontainer').down('userlist').hide();
button.up('mycontainer').down('mytabpanel').show();
}
}]
}]
});
Файл с определением грида:
Ext.define('AM.view.user.List' ,{
extend: 'Ext.grid.Panel',
alias : 'widget.userlist',
store: 'Users',
columns: [
{header: 'Name', dataIndex: 'name'},
{header: 'Email', dataIndex: 'email'}
]
});
Файл с определением табов:
Ext.define('AM.view.user.Tabs' ,{
extend: 'Ext.tab.Panel',
alias : 'widget.mytabpanel', // перед свими алиасами ставьте префикс, чтобы случайно имя не совпало с алиасом компонента библиотеки
items: [
// здесь подключаем компоненты внутри вкладок
]
});
Возможны и другие варианты компоновки. |
| Часовой пояс GMT +3, время: 00:25. |