如何为配置了header:false的面板设置Header

时间:2012-12-10 14:37:55

标签: extjs extjs4 extjs4.1

我有一些面板(大多数时间网格面板),大多数时间配置没有标题,意味着header: false。现在我需要设置标题,但我找不到任何想法。那我怎么能这样做呢?

1 个答案:

答案 0 :(得分:3)

据我所知,在您选择不创建标题后,这是不可能的。

您可以考虑使用简单的组件,并将其应用于dockedItems以及相应的weight。只要您不需要直接访问工具,这可能是完全合适的

使用标题定义面板并在显示组件之前隐藏它。我从来没有尝试过,但它应该工作。您可以使用getHeader()

接收标头

这是一个有效的例子:

Ext.create('Ext.panel.Panel', {
    title: 'Hello',
    width: 100,
    items: [
        {
            xtype: 'button',
            text: 'toggle',
            handler: function(btn) {
                var header = btn.up('panel').getHeader();
                if (header.isVisible())
                    header.hide();
                else
                    header.show();
            }
        }
    ],
    renderTo: Ext.getBody()
});

经过一番阅读后,我发现了一种创建标题的方法。可以使用updateHeader(true)

完成
Ext.create('Ext.panel.Panel', {
    title: 'Hello',
    header: false,
    width: 200,
    items: [
        {
            xtype: 'button',
            text: 'toggle',
            handler: function(btn) {
                var panel = btn.up('panel');
                if (Ext.isObject(panel.header) && panel.header.isVisible()){
                    panel.header.hide();
                }else if (panel.header === false){
                    panel.header = true;
                    panel.updateHeader(true);
                }else {
                    panel.header.show();
                }
            }
        }
    ],
    renderTo: Ext.getBody()
});