2011-11-27 78 views
0

我试图重新初始化改变组合框配置:ExtJS的组合框重新初始化

Ext.onReady(function(){ 

    var mycb = new Ext.form.ComboBox({ 
     //params 
    }); 

    //here is other component initizing 
    var other = .... 
     onChange: function() { 
     //here I'm trying to reinitialize ComboBox 
     mycb = new Ext.form.ComboBox({ 
      // other params 
     }); 
    } 
}); 

但onChange事件后,我的组合框的disapeared。我试图调用mycb.destroy()方法,但也有相同的结果。

我应该取消注册还是类似ComboBox?为什么我的组件正在消失?

回答

1

使用下面的代码..

mycb.reset(); 
mycb.removeAll(); 
// for loading new data 
mycb.loadData("new data store"); 
// to load attributes 
mycb.load({params:{start:0, limit:25, reset:true}}); 

这是工作在我的代码。请根据您的需要进行更改。

+0

如果我调用resetAll()我的控件不会消失,但加载后()新的参数未加载 – bontade

+0

更新代码..请检查 –

0

也许一个更好的主意是将原始的组合框从其容器中移除并在其位置添加一个新组合框。也许你所需要的只是用新数据重新加载商店?

+0

不,我不重新加载存储,但我更改配置的控制 – bontade

0

用合适的布局将此组合包裹在面板中。在onChange处理程序中,从该面板中删除组合,将其摧毁(组合),并将新组合添加到面板。增加面板可以让您轻松地将其放置在布局的正确位置。