Расположение «подходит» только для размещения одной панели.Вместо этого используйте раскладку «карта» для переключения между двумя или более панелями, которые должны находиться в одном и том же пространстве:
{
region: 'center',
layout: 'card',
// 0 here means the zeroth element of the items array.
activeItem: 0,
items: [
gridCourses,
gridExams
]
}
Тогда ваши обработчики кнопок станут:
{
text: 'Courses',
iconCls: 'show-courses',
handler: function() {
gridCourses.getStore().reload();
gridCourses.ownerCt.getLayout().setActiveItem(gridCourses);
}
},
{
text: 'Exams',
iconCls: 'show-exams',
handler: function() {
gridExams.getStore().reload();
gridExams.ownerCt.getLayout().setActiveItem(gridExams);
}
}
Кроме того, предполагая, что панель инструментов * переменная 1008 * в вашем примере содержит настоящий экземпляр Ext.Toolbar, ваш макет в целом можно улучшить с помощью другого определения области просмотра:
new Ext.Viewport({
layout: 'fit',
items: {
xtype: 'panel',
layout: 'card',
activeItem: 0,
tbar: [
{
text: 'Courses',
iconCls: 'show-courses',
handler: function() {
gridCourses.getStore().reload();
gridCourses.ownerCt.getLayout().setActiveItem(gridCourses);
}
},
{
text: 'Exams',
iconCls: 'show-exams',
handler: function() {
gridExams.getStore().reload();
gridExams.ownerCt.getLayout().setActiveItem(gridExams);
}
}
],
items: [
gridCourses,
gridExams
]
}
});
Тем не менее, если вам все еще нуженмакет границы на вашем окне просмотра по другим причинам, кроме панели карты, панели инструментов и всего, может быть припаркован в центральной области, как показано в верхней части ответа.