我对这个问题进行了充分的调查。但遗憾的是,即使在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(此版本是要求)。我会感激任何帮助。谢谢。
答案 0 :(得分:1)
尝试在面板上执行doLayout()
。