Если я правильно понимаю, что вы хотите достичь вы можете сделать что-то вроде этого:
Ext.create('Ext.panel.Panel', {
border: true,
bodyStyle: {
padding: '10px'
},
collapsible: true,
hideCollapseTool: true,
html: 'Some data',
renderTo: Ext.getBody(),
title: '▲ Header ▼',
titleAlign: 'center',
titleCollapse: true
});
working fiddle Проверьте это.
Если вы все еще хотите кнопку с высотой/шириной 100%, чтобы добавить Вы можете сделать что-то вроде этого:
var myPanel = Ext.create('Ext.panel.Panel', {
...
title: '<button id="myButton" style="...">My header button</button>'
...
});
(не забудьте удалить заголовок панели отступы)
и добавить обработчик к нему через ExtJS, как этот
// Get Ext.dom.Element via Ext.dom.Element.get() method
Ext.get('myButton').on('click', function() {
if(myPanel.getCollapsed())
myPanel.expand();
else
myPanel.collapse();
});
или JS, как это
document.getElementById('myButton').addEventListener('click', function() {
if(myPanel.getCollapsed())
myPanel.expand();
else
myPanel.collapse();
});
Проверьте это working fiddle.
Если вы хотите добавить несколько кнопок в свой заголовок, вы также можете использовать конфигурацию Ext.panel.Panel.tools
.
И, конечно же, вы всегда можете переопределить Ext.panel.Header
.
Большое спасибо! О «... и добавьте обработчик к нему через чистый JS или ExtJS ...» - не могли бы вы привести какой-нибудь пример? У меня есть id Panel как «panelId» и id Button как «btnId» - как я могу его использовать? В моем случае вызов «panel.header.el.on» в рендере (слушателях) не работает, знаете ли вы, почему? – TWriter