ruby07 2011-01-12 18:18
浏览 406
已采纳

使用TabPanel时,如果两个页面存在相同的id。

我左边是一颗tree,右边是TabPanel。当点击一个结点 A,autoload一个页面 A.jsp 在TabPanel中。再点击另一个结点 B,autoload另一个页面 B.jsp 在TabPanel中。这时就存在问题了,如果我 A 页面和 B 页面同时存在

,那么,如果我先点击结点 A,页面 A.jsp 正常显示,再结点 B,页面 B.jsp 不能显示,反之相反。

如果将 B 页面的

,改为
,就能是正常的。
我知道 id 是唯一的,不能相同。但 A.jsp 和 B.jsp 是TabPanel 中两个不同的页面,为什么是存在这个问题?

希望大家帮忙!!
谢了!

  • 写回答

3条回答

  • 御风24311 2011-01-14 17:20
    关注

    如果采用A.jsp中这种定义一个

    ---这个地方的id是必须要写的,但是一定要唯一,不然显示会有冲突,而且A.jsp不能在浏览器重同时被载入两次,这里说的意思是在下一次载入A.jsp之前先前的A.jsp所在的页面必须先remove掉。不知道你是否明白,还是那句话就是为了避免dom节点id冲突。

    Ext组件的id不设定的话是ext渲染的时候自动生成的,一般都是什么 ext-com-1321
    之类的字符串,不用去管这些。你要这个Ext组件,有两种方式:

    1、该组件已经设定了Id时,使用Ext.getCmp(组件id)---(不建议使用)
    2、没有设定id时, 将这个组件的引用传递给你需要使用的他的对象中去。
    如 var panel1 = new Ext.Panel();
    你可以将这个panel传递给你要用它的对象,
    如 var panel2 = new Ext.MyPanel({panel1 : panel1});
    MyPanel定义如下,是一个继承Ext.Panel的一个自定义panel组件。我们组开发写ext代码的一个规范格式,送给你参考一下。
    MyPanel = function(config){
    Ext.apply(this,config);//将config中的属性赋值给MyPanel

    你现在就可以在这个panel中通过 this.panel1 来操作panel1了;
    MyPanel.supperclass.constructor.call(this,{*一些配置与定义*});
    }
    Ext.extend(MyPanel,Ext.Panel,,{*一些配置与定义*});

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

报告相同问题?

悬赏问题

  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊