extjs panel add 和remove panel的注意事项
2012-07-23 11:18
369 查看
1.如果panel的布局采用了border的布局(也就是东西南北中),那么默认是不能使用add方法添加panel的,但可以变通一下, 如下所示,在追加一个panel,也就是在south里再添加一个panel,而这个panel的布局不是border,则就可以使用add方法了。
{
region:'south',
height:400,
items:{
id :"addpanelId",
height:400,
items:[{xtype:'button',text:'添加组件',handler:addPanel},
{xtype:'button',text:'移除组件',handler:removePanel}]
}
}
2. 上述代码中,尽量不要将函数直接写成handler:function(){}模式,这样会导致,有些变量访问不了,最好在公共变量处定义一个函数 function addPanel(){}
3.add()方法执行之后,需要dolayout一下,注意不要使用doLayout(true,true),直接使用doLayout()就行,否则会使得添加进入的panel上的控件不可见。
4.待被添加的panel最好通过一个函数生成,否则,remove之后,就不能再进行add操作了。
-------------------------------------------------------------------------------
下面是全部可运行的代码
-------------------------------------------------------------------------------
function createPanel (){ //创建一个panel
var mymappanel2012A = new Ext.Panel({
frame:true,
height:200,
id:'mappanel2012A',
items:{xtype:'field',id:'maxlieId1212'}
});
return mymappanel2012A;
}
function removePanel(){//移除一个组件面板
try{
var xxmap = Ext.getCmp('addpanelId');
var myt = Ext.getCmp('mappanel2012A');
if(myt){
Ext.getCmp('addpanelId').remove(myt);
}
Ext.getCmp('addpanelId').doLayout();
}catch(e){
alert(e.name + " " + e.message);
}
}
function addPanel(){ //添加一个组件面板
try{
Ext.getCmp('addpanelId').add(createPanel ());
Ext.getCmp('addpanelId').doLayout();
}catch(e){
alert(e.name + " -- " + e.message);
}
//Ext.getCmp('addpanelId').doLayout(true,true);//这个方法会导致面板下的组件无法显示
}
{
region:'south',
height:400,
items:{
id :"addpanelId",
height:400,
items:[{xtype:'button',text:'添加组件',handler:addPanel},
{xtype:'button',text:'移除组件',handler:removePanel}]
}
}
2. 上述代码中,尽量不要将函数直接写成handler:function(){}模式,这样会导致,有些变量访问不了,最好在公共变量处定义一个函数 function addPanel(){}
3.add()方法执行之后,需要dolayout一下,注意不要使用doLayout(true,true),直接使用doLayout()就行,否则会使得添加进入的panel上的控件不可见。
4.待被添加的panel最好通过一个函数生成,否则,remove之后,就不能再进行add操作了。
-------------------------------------------------------------------------------
下面是全部可运行的代码
-------------------------------------------------------------------------------
function createPanel (){ //创建一个panel
var mymappanel2012A = new Ext.Panel({
frame:true,
height:200,
id:'mappanel2012A',
items:{xtype:'field',id:'maxlieId1212'}
});
return mymappanel2012A;
}
function removePanel(){//移除一个组件面板
try{
var xxmap = Ext.getCmp('addpanelId');
var myt = Ext.getCmp('mappanel2012A');
if(myt){
Ext.getCmp('addpanelId').remove(myt);
}
Ext.getCmp('addpanelId').doLayout();
}catch(e){
alert(e.name + " " + e.message);
}
}
function addPanel(){ //添加一个组件面板
try{
Ext.getCmp('addpanelId').add(createPanel ());
Ext.getCmp('addpanelId').doLayout();
}catch(e){
alert(e.name + " -- " + e.message);
}
//Ext.getCmp('addpanelId').doLayout(true,true);//这个方法会导致面板下的组件无法显示
}
相关文章推荐
- extjs panel add 和remove panel的注意事项
- extjs panel remove 后不能add
- UpdataPanel控件的使用及注意事项
- Android:ListView.addHeaderView()用法及其注意事项
- ExtJs Store注意事项
- extjs - comboBox如果要手动填充则需注意事项
- ASP.NET AJAX里使用Update Panel需要注意的事项
- 2012/8/3 Extjs使用TabPanel时需要注意的问题
- ExtJS导入资源时的注意事项
- Java:List remove时候注意事项
- android listview addHeaderView和addFooterView的注意事项
- IOS addChildViewController方法使用及注意事项
- .net 2005 环境下,写Microsoft Outlook的Add-in的注意事项
- 安卓中使用ArrayAdapter中的remove方法注意事项
- android listview addHeaderView和addFooterView的注意事项
- 调试Sbo Add-on插件程序的几点注意事项
- android js互相调用的方法,混淆后js无效,addJavascriptInterface使用注意事项
- list.remove()时出问题,集合的remove方法注意事项
- android listview addHeaderView和addFooterView的注意事项
- 链表操作--- Remove Nth Node From End of List,注意事项整理