如何在extjs中更新tabPanel项目标题(sencha touch)

时间:2010-10-17 17:52:09

标签: extjs sencha-touch

我如何从另一个函数更新tabPanel中的项目的title属性?

mainpanel是我的tabPanel,我根据我的js调试器成功更新了标题。 Calling doLayout();似乎没有重绘UI中的选项卡!

  

var mainpanel = Ext.getCmp('mainpanel');

   var item = mainpanel.items.items[0];

   item.title = 'Me';
   mainpanel.doLayout();

5 个答案:

答案 0 :(得分:1)

是否有setTitle()方法?

答案 1 :(得分:1)

这是我写的一个覆盖函数,用于设置选项卡的标题。在使用它的文件之前将其包含在js中。它添加了 TabPanel.setTabTitle(tabNo,newTitle)方法。

在标签内的回调中使用示例:

this.ownerCt.setTabTitle( 0, 'My Title');

覆盖代码:

/**
 * Overrides the Ext.TabPanel to add .setTabTitle() function
 */
Ext.override(Ext.TabPanel, {
    /**
     * Set the title of a specific tab
     */
    setTabTitle: function( tabNo, newTitle ) {
        // make sure we have a number and tab exists
        if( tabNo>=0 && !Ext.isEmpty( this.getTabEl(tabNo))) {
            var tabEl = this.getTabEl(tabNo); // walk down dom, update title span
            Ext.getDom(tabEl).down('.x-tab-strip-text').innerHTML = newTitle;
        }
     }
 });

答案 2 :(得分:1)

您可以使用它来更新其他功能的标题

Panel.title1Button.setText(finToolbarTitle);

如果您在停靠项目中提到了工具栏

Panel.dockedItems.items[1].setTitle(toolbarTitle);

答案 3 :(得分:1)

在extjs 4.0,4.1或4.1.1中,如果您有tab元素变量,则可以更改标题:

//var tabEl = this.getActiveTab();
Ext.getDom(tabEl).tab.btnEl.dom.innerText = 'My New Title';

您还可以在选项卡面板中定义新方法,如下所示:

setTabTitle: function(tabEl, title) {
    Ext.getDom(tabEl).tab.btnEl.dom.innerText = title;    
}

答案 4 :(得分:0)

让tabTitle = Ext.ComponentQuery.query('#tabs'); // tabs是创建标签面板的itemId tabTitle.getAt(index_no_for_tab).tab.setTitle('我的新标题');