从以前的项目清除后,如何将项目添加到extjs面板?

时间:2014-06-07 19:06:27

标签: extjs

您好我使用此代码动态地向面板添加标签项,但是当清除项目并尝试再次添加新项目时,没有任何事情发生:

var mText = new Ext.form.Label({});      
      mText.draggable="constrain: true; constrainTo: mSurface";      
      mSurface.add(mText);
      mSurface.doLayout();
      mText.on('move',function(t,x,y,eOpts){        
        MainForm.lbx.setText(x,false); 
        MainForm.lby.setText(y,false);                  
        obj.set('o_x',parseInt(x));
        obj.set('o_y',parseInt(y));
      });      
      mText.getEl().on('render', function(t,eOpts) {cur_obj=mText;});
      mText.getEl().on('click', function(e,t,eOpts) {cur_obj=mText;Tree_Select(mText.id);});
      mText.getEl().on('contextmenu', function(e,t,eOpts) {e.stopEvent();cur_obj=mText;mnutxtContext.showAt(e.getXY());});

mSurface.removeAll()什么都不做!!所以我用它来清除面板:

Ext.each(mSurface.items.items, function(cmp) 
 { 
  cmp.destroy();
  //mSurface.remove(cmp); //doesn't work also 
 });

我已经阅读了extjs 4.2 api中的几乎所有东西,并尝试谷歌它但没有,我认为removeAll应该工作,也许我添加标签到面板的方式是错误的或有一些我缺少的东西..

感谢您的建议..: - )

1 个答案:

答案 0 :(得分:0)

我在苦苦挣扎后找到了解决方案..: - (((<(

我只需将配置更改为:

var mText = new Ext.form.Label({id:obj.get('o_id')}); 

当我通过&#39; id&#39;在配置中&#39; removeAll&#39;工作良好!!!但是当我设置“id”#39;在创建组件并将其添加到面板后,“删除所有”&#39;没有工作......

我真的不知道为什么,但我很乐意为这种行为做出解释!