单击 EXTJS 中选项卡面板的侦听器

Posted

技术标签:

【中文标题】单击 EXTJS 中选项卡面板的侦听器【英文标题】:click listener for tab panel in EXTJS 【发布时间】:2012-02-17 15:00:00 【问题描述】:

我在 extjs 中使用标签面板。我想在单击选项卡时显示警报。但我不确定如何。

这就是我现在要做的:


                xtype: 'tabpanel',
                activeTab: 0,
                region: 'center',
                items: [
                    
                        xtype: 'panel',
                        title: 'All',
                        items: [grid]

                    ,
                    
                        xtype: 'panel',
                        title: 'Closed'
                    ,
                    
                        xtype: 'panel',
                        title: 'Open'
                    
                ],
                 listeners: 
            click: function () 
                alert('test');
            
                         
            

点击该选项卡时如何显示全部、关闭或打开?

【问题讨论】:

【参考方案1】:

TabPanel没有标签点击事件,但是你可以绑定到每个标签的点击事件:

Ext.createWidget('tabpanel', 
    items: [...],
    listeners: 
        render: function() 
            this.items.each(function(i)
                i.tab.on('click', function()
                    alert(i.title);
                );
            );
        
    
);

注意:这是基于 ExtJS 4 的代码。

【讨论】:

【参考方案2】:

我设法通过使用tabchange 事件来做到这一点。在下面的示例中,我使用了 newCard.xtype 属性,其中 xtype 的值(即task-archive)只是我的面板,带有控件和相应的 xtype 属性。

Ext.define('ComplexBrigade.controller.taskArchive.TaskArchive', 
    extend: 'Ext.app.Controller',

    init: function() 
        this.control(
            '#tabWorks': 
                tabchange: this.doTest
            
        );
    ,

    doTest: function ( tabPanel, newCard, oldCard, eOpts) 
        switch (newCard.xtype) 
            case "task-archive":
                console.log("task-archive");
                break;
            case "task-creation":
                console.log("task-creation");
                break;
        
    
);

【讨论】:

以上是关于单击 EXTJS 中选项卡面板的侦听器的主要内容,如果未能解决你的问题,请参考以下文章

Ext js - 将网格值传递到下面的选项卡/网格面板

无法获取选项卡面板的对象

包含链接的 ExtJs 网格面板返回 false

在控制器 ExtJS 中定义监听器

如何将选项卡侦听器添加到选项卡

EXTJS 网格面板侦听器 - 从对象中检索数据