想要在每次渲染时重新加载ExtJs选项卡面板

时间:2019-05-08 05:22:40

标签: extjs

我正在一个jsp页面中创建一组ExtJs面板和TabPanel,如下所示:

//left panel
var leftpanel = new Ext.Panel({
        id   :'leftpane',
        region:'west',
        width: leftPaneDefaultWidth,
        layout : 'fit',
        header : false,
        split:true
});

//right tabpanel
var rightpaneltab = new Ext.TabPanel({
    id:'rightpanetabs',
    border:false,
    enableTabScroll: true,
    region:'center'
});

//parent panel
var toppanel = new Ext.Panel({
    id : 'main',
    layout:'border',
    renderTo : 'parentDiv',
    items: [ leftpanel ,  rightpaneltab ]
});

由于业务需求,我需要刷新/重新加载上面定义的 rightpaneltab 中的内容。

有人可以建议实现这一目标的最佳途径吗?

1 个答案:

答案 0 :(得分:2)

您可以收听paintedshowinitialize等事件。

在此处查看文档:{​​{3}}

  

initialize-组件初始化后触发

     

painted-每当此Element在屏幕上实际可见(绘制)时触发。当您需要对DOM元素执行“读取”操作(即计算自然尺寸和位置)时,此功能很有用。

     

show-每当显示组件时触发

用法:

//left panel
var leftpanel = new Ext.Panel({
        id   :'leftpane',
        region:'west',
        width: leftPaneDefaultWidth,
        layout : 'fit',
        header : false,
        split:true
});

//right tabpanel
var rightpaneltab = new Ext.TabPanel({
    id:'rightpanetabs',
    border:false,
    enableTabScroll: true,
    region:'center',
    listeners: {
        painted: function () {
            // reload the content here
        }
    }
});

//parent panel
var toppanel = new Ext.Panel({
    id : 'main',
    layout:'border',
    renderTo : 'parentDiv',
    items: [ leftpanel ,  rightpaneltab ]
});