将项目添加到现有窗口
问题描述:
如何将项目添加到现有窗口?我试过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();
};
我的代码有什么问题?非常感谢你。
答
win;
声明创建窗口时赢全局的,那么
var win = ...
redeclares它作为一个局部变量。相反,win
应该声明为非全局的,但不在此代码所在的范围之内(或作为函数arg传递给它)。然后,只需删除win;
行和var
关键字,并确保所有代码都引用相同的变量。另外,如果窗口已经被渲染,那么你添加新的组件,你可能不得不调用win.doLayout()
来刷新窗口布局。
非常感谢。这是最终的代码(对于有同样问题的人):http://pastebin.com/v7ww7WJc – farhad 2010-05-24 10:25:58