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 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料