我對這個問題做了充分的研究。但不幸的是,沒有找到任何解決方案,即使在stackoverflow問題,看起來像這個。 我需要重新繪製(刷新,重新渲染)面板,該面板包含帶有不同選項卡的tabPanel,每次打開面板時都會重新生成。這是下面的代碼來構建標籤不能在ExtJS中重繪Panel
//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]
});
}
這是建立面板
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(此版本是要求)。我會感謝任何幫助。謝謝。
可能是hide();顯示();將幫助你 – TheHorse
不,不幸的是,它不能解決問題 – Deniplane
你可以發佈一個JSFiddle來演示這個bug嗎?我不認爲你的代碼是完整的。 'categoryTpl'什麼都不返回。 – user123444555621