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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • upup1000 2010-06-23 15:07
    关注

    tab.add(node.id);

    node.id是什么东东,
    tab的add方法里的参数又是什么东东

    评论
  • upup1000 2010-06-23 15:55
    关注

    难道你重写了Ext.TabPanel的add方法?

    评论
  • upup1000 2010-06-23 16:02
    关注

    我问了你两个问题你只回答了第一个

    评论
  • upup1000 2010-06-23 16:52
    关注

    你的意思是node.id是一个panel?而不是一个字符串?这种处理够特别的,哈哈。只是你这个panel实际上不是在一个function中定义并反回的,它只定义了一次,当你关闭tab选项后,这个panel就会被消毁,你再次加,当然错误了,因为这个对象此时已经东存在了

    评论
  • upup1000 2010-06-23 16:53
    关注

    已经不存在了

    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 求苹果推信imessage批量推信技术
  • ¥15 ubuntu 22.04 系统盘空间不足。隐藏的docker空间占用?(相关搜索:移动硬盘|管理系统)
  • ¥15 利用加权最小二乘法求亚马逊各类商品的价格指标?怎么求?
  • ¥15 c++ word自动化,为什么可用接口是空的?
  • ¥15 Matlab计算100000*100000的矩阵运算问题:
  • ¥50 VB6.0如何识别粘连的不规则的数字图片验证码
  • ¥16 需要完整的这份订单所有的代码,可以加钱
  • ¥15 Stata数据分析请教
  • ¥15 请教如何为VS2022搭建 Debug|win32的openCV环境?
  • ¥15 关于#c++#的问题:c++如何使用websocketpp实现websocket接口调用,求示例代码和相关资料