无法在ExtJS中重绘Panel

时间:2011-08-19 08:18:55

标签: extjs

我对这个问题进行了充分的调查。但遗憾的是,即使在stackoverflow问题中也没有找到任何解决方案,看起来像这样。 我需要重新绘制(刷新,重新渲染)一个面板,该面板包含一个带有不同选项卡的tabPanel,每次打开面板时都会重建。以下是构建标签的代码

//the first tab
categoryTpl: function(){
    var categoriesTab = new Ext.Panel({
    id: '_Categories',
    title: 'X-Axis',
        layout: 'form',
    padding: 10,
    labelWidth: 101,
    items: [...]
    })
}

以下是构建TabPanel的代码

setAxesInfo: function(){
    var categoryTab = this.categoryTpl();
    //initialize the controls in the first tab
    FC.Var.CM.initAxis(categoryTab, undefined);

    delete this.axesTabPan;
    this.axesTabPan = new Ext.TabPanel({
        activeTab: 0,
        plain: true,
        enableTabScroll: true,
        autoScroll: false,
        defaults: { autoScroll: true },
        items: [categoryTab]
    });
}

这是构建Panel

的代码
create: function(){ 

    this.setAxesInfo();

    this.axes = new Ext.Panel({
        layout: 'fit',
        border: false,
        items: this.axesTabPan
    });

    return {
        id: 'axesStep',
        title: 'Series Customization',
        items: this.axes
    }
}

所以,我在选项卡控件中进行了更改,然后我想重建(刷新,重新渲染)我的面板我单击按钮,它有下一个处理程序

refreshAxes: function() {   
   this.axes.removeAll();

   this.setAxesInfo();

   this.axes.add(this.axesTabPan);

   this.axes.doLayout();
}

因此,在调试器中我可以看到,选项卡中的所有控件都有默认的初始值(它们是按照我的意思重建的)。但在浏览器中,我只看到之前更改的值。值得注意的是,如果我更改面板的焦点(例如切换到另一个面板)然后返回到此面板,则所有数据都具有默认值。为什么我没有失去焦点就看不到默认值?

我正在使用Ext Js 3.4(此版本是要求)。我会感激任何帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

尝试在面板上执行doLayout()