又是风骚的js错误 f**k

我想实现的功能很简单
在panel的item里移除掉一个gridpanel然后再加上另外一个gridpanel,最后重新布局
[code="java"]
alert(Ext.getCmp('NewsView').items.length); //2个item
//移除当前panle 加载另一个panel
Ext.getCmp('NewsView').remove('NewsGrid');

    //随便整个panel
 var data1=[ [1, 'asdasd', 'asdasd'],
         [2, 'asxcvbcv', 'asdwqdasd'] ];
   var store1=new Ext.data.SimpleStore({data:data1,fields:["id","name","mina"]});
   var grid1 = new Ext.grid.GridPanel({
       title:"title",
       height:150,
       width:500, 
       columns:[{header:"sawayika",dataIndex:"name"},
       {header:"yisilan",dataIndex:"mina"}],
       store:store1,
   }); 

    alert(Ext.getCmp('NewsView').items.length);  //1个item
Ext.getCmp('NewsView').add(grid1);
Ext.getCmp('NewsView').doLayout(true); //这句话会报错,如果注释掉就没问题 但是panel没有重新布局
alert(Ext.getCmp('NewsView').items.length); // 如果上面一句话注释掉就是2个

[/code]

chrome下报错:[b][color=red]Uncaught TypeError: Cannot read property 'style' of undefined
Ext.Element.addMethods.setLeftTopext-all.js:7
Ext.BoxComponent.Ext.extend.setPositionext-all.js:7
Ext.layout.BorderLayout.Region.applyLayoutext-all.js:7
Ext.layout.BorderLayout.Ext.extend.onLayoutext-all.js:7
Ext.layout.ContainerLayout.Ext.extend.layoutext-all.js:7
Ext.Container.Ext.extend.doLayout[/color][/b]
ff报错:[b][color=red]b.dom is undefined[/color][/b]
ie报错:[b][color=red]'dom.style' 为空或不是对象[/color][/b]
基本意思是说没有定义style,哪里要定义style啊,这个extjs我才接触几天啊
肿么办啊?

删除panel前
[img]http://dl.iteye.com/upload/attachment/546282/6c5996e4-7fc9-3209-b51f-6c9bac192c7d.jpg[/img]
加了panel后
[img]http://dl.iteye.com/upload/attachment/546284/7f51db29-a305-3616-8352-e4d19d77cba8.jpg[/img]

6个回答

[code="java"]
整个界面用的border布局,我要删除的组件位置确实是center
那我现在该怎么办呢?
[/code]
要么你就把tree组件放到“center”的位置,这样把grid放到“east”的位置,要么,保持center不变,但必须用一个容器占据“center”的位置,grid添加到该容器里面,这样就保证你删除grid,center位置的组件还在。

'style' 在chrome浏览器不识别啊 ,你设置了或者引用了也没用啊

别的浏览器不错吧。
chrome这玩意就是容易莫名其妙啊。

我的意思是style在ext底层是用了的。

NewsView 有没有父组件,有的话,把[quote]Ext.getCmp('NewsView').doLayout(true); [/quote]中的 NewsView 改为它的父组件的名称试一下看看呢

你整个界面采用什么布局?如果你采用border布局的话,位于“center”位置的组件你不能删除!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!