如何将项目添加到现有窗口?我尝试了win.add(),但似乎没有用。为什么?这是我的一段代码:
function combo_service(winTitle,desc,input_param) {
/* parametri */
param=input_param.split(","); /* della forma: param[0]="doc1:text", quindi da splittare di nuovo */
/* cosi' non la creo più volte */
win;
if (!win)
var win = new Ext.Window({
//title:Ext.get('page-title').dom.innerHTML
renderTo:Ext.getBody()
,iconCls:'icon-bulb'
,width:420
,height:240
,title:winTitle
,border:false
,layout:'fit'
,items:[{
// form as the only item in window
xtype:'form'
,labelWidth:60
,html:desc
,frame:true
,items:[{
// textfield
fieldLabel:desc
,xtype:'textfield'
,anchor:'-18'
}]
}]
});
win.add({
// form as the only item in window
xtype:'form'
,labelWidth:60
,html:desc
,frame:true
,items:[{
// textfield
fieldLabel:desc
,xtype:'textfield'
,anchor:'-18'
}]});
win.show();
};
我的代码出了什么问题?非常感谢你。
答案 0 :(得分:2)
win;
宣布胜利为全球,然后
var win = ...
在创建窗口时将其重新声明为本地var。相反,win
应该被声明为非全局的,但不在此代码所在的范围内(或作为函数arg传递给它)。然后,只需删除win;
行和var
关键字,并确保所有代码都引用相同的变量。
此外,如果窗口已经渲染,那么您在其中添加新组件,您可能需要调用win.doLayout()
才能刷新窗口布局。