ExtJs将面板添加为标签项

时间:2010-03-08 22:01:39

标签: javascript user-interface extjs tabs

我有一个setup,根据用户对左面板树中项目的选择,预计会加载该选项卡。我的目标是仅根据用户选择将相关项加载到特定选项卡。

第一次,我可以添加如下项目:

    var tab = tabs1.getItem('Orders');   
    tab.remove(0);
    tab.add(pane33);
    tab.doLayout(); 

但是,当用户再次选择该项时,面板项已被删除,错误输出为(c.getPositionEl().dom is undefined)。

错误是由于项目被删除或销毁。似乎没有选项来替换选项卡项,或刷新/重新加载面板。

如何处理?

感谢。

2 个答案:

答案 0 :(得分:2)

Container.remove有一个可选的第二个参数autoDestroy,这意味着被删除的组件也会被永久销毁(对于TabPanels,默认为 true )。您只是一次实例化您的子组件,因此在它们被销毁后,它们将不再可用。传递autoDestroy: false(也可以在TabPanel级别设置)并在删除后隐藏现有组件(然后在后续点击时显示它们),或者您必须在每次添加之前重新实例化它们。 / p>

答案 1 :(得分:0)

您可以将该选项标记为“已选择”并检查鼠标操作。作为一种简单的方法。