yayg2008 2010-06-23 12:48
浏览 255
已采纳

Extjs Tabpanel加载问题

我的一个页面,左边是个树形菜单,中间是Tabpanel,当点击左边某个叶子结点时,就在右边打开一个tab,
我是根据id来查找的,目前的情况是第一次打开没问题,但当我关掉某个再打开时,就会提示comp is undefinded,
请高手支招,[code="js"]var tree = new Ext.tree.TreePanel({
loader : treeLoader,
enableDD : true,
rootVisible : false,
border : false,
root : rootNode,//采用AsycTreeNode
listeners : {
click : function(node, event) {
if (node && node.id == 'logout') {
Ext.Msg.alert("安全退出", 'Logout!');
} else if (node && node.isLeaf()) {

                        addTab(node);
                    }
                }
            }
        });
function addTab(node) {
    var tab = Ext.getCmp('view').findById('mainTab');
    alert(tab.findById(node.id));
    if (!tab.getComponent(node.id)) {
        tab.add(node.id);
        tab.setActiveTab(node.id);
    } else {
        tab.setActiveTab(node.id);
    }
}[/code]
  • 写回答

6条回答

  • upup1000 2010-06-23 20:46
    关注

    更好的办法就是把这个node.id不定义成一个panel而是定一成一个panel的config

    这其实是Ext的延时渲染
    把类似这样的内容
    node.id = [b]new Ext.Panel([/b]{
    title : "abc",
    ...
    }[b])[/b]

    改成类似这样

    node.id = {
    [u]xtype : "panel",[/u]
    title : "abc",
    ...
    }

    如果只想加个panel或container,这里的xtype可以省略,如果加别的组件,也可以使用相应的xtype

    主要看粗体和下划线标注的地方 看他们的区别

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿