我用borderlayout布局,通过代码dataLayout.add('east', new Ext.ContentPanel('eastP', {autoCreate:true}))在其east处添加了一块面板,然后新建了一个Form,Form里添加了几个TextField,通过代码detailForm.render(dataLayout.getRegion("east").bodyEl)将其渲染,以上为背景现在我想将Form里的TextField重新换一些,能有什么方法呢?可以重新加载Form吗?
可以将Form整个去掉重新添加Form进去吗?
可以将整个ContentPanel去掉重新添加Panel进BorderLayout吗?

解决方案 »

  1.   

    获取 textfield 重新设置lable
    然后 form.doLayout() 重绘界面你上面说的都可以 细节你要看 EXT的API 关于EXT组件的 items对象的管理
      

  2.   

    LZ的意思是remove掉再重新添加吗?
      

  3.   

    如果有布局的话,可以将整个form重新添加进去
      

  4.   

    我的EXTJS版本很低,1.1.1,所以没有doLayout()这个方法
    大概就是这么个意思
    如何添加?
      

  5.   

    你可以通过删除,然后再增加的方式来重新加载,你要删除或者增加那个组件,就在其外层的组件调用删除或者增加函数,删除可以通过id来指定,如:
    panel.remove('id',true);
    panel.doLayout();
    如果全部删除可以用:
    panel.removeAll()
    增加可以用panel.add({
             xtype: 'checkbox',
              boxLabel: 'box1',
              name: 'checkBoxs',
              id: 'box1',
              inputValue: 'box1'     });