2011-08-19 33 views
3

我對這個問題做了充分的研究。但不幸的是,沒有找到任何解決方案,即使在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(此版本是要求)。我會感謝任何幫助。謝謝。

+0

可能是hide();顯示();將幫助你 – TheHorse

+0

不,不幸的是,它不能解決問題 – Deniplane

+0

你可以發佈一個JSFiddle來演示這個bug嗎?我不認爲你的代碼是完整的。 'categoryTpl'什麼都不返回。 – user123444555621

回答

1

嘗試在面板上執行doLayout()

+0

我有同樣的問題,doLayout()dosnt work..anu其他想法? – Armance