EXTJS用起来有时真让人莫名奇妙,也许只因尚是粗浅的接触,很多用法不甚了解。。要学习!
问题:在一弹出新增信息窗体(window)新增信息成功后,在未关闭该窗口前,提示打开另一设置附加信息的窗体,附加窗体莫名的出项错位,不解。。
因此搜索关于ext.window的用法,以下虽不是所问的也可启发下。
首先看下普通的窗口:
- function
newWin() { var win=new Ext.Window({title:"窗口", width:400, height:300, maximizable:true}); win.show(); }
function newWin() { var win=new Ext.Window({title:"窗口", width:400, height:300, maximizable:true}); win.show(); }
- var
win; - function
newWin(value) { // 如果窗口存在,显示 win = Ext.getCmp("win"); if (win) { win.show(); win.load({ url : "../TeacherDispatchAction.do?method=courseDetail", params : { couId : value, subMainId : "tab-" + value + "-main" } }); } else { win = new Ext.Window({ title : "课程信息", id : 'win', width : 400, height : 300, maximizable : true, closable : true, closeAction : 'close' }); win.show(); win.load({ url : "../TeacherDispatchAction.do?method=courseDetail", params : { couId : value, subMainId : "tab-" + value + "-main" }, scripts: true }); } - }
var win; function newWin(value) { // 如果窗口存在,显示 win = Ext.getCmp("win"); if (win) { win.show(); win.load({ url : "../TeacherDispatchAction.do?method=courseDetail", params : { couId : value, subMainId : "tab-" + value + "-main" } }); } else { win = new Ext.Window({ title : "课程信息", id : 'win', width : 400, height : 300, maximizable : true, closable : true, closeAction : 'close' }); win.show(); win.load({ url : "../TeacherDispatchAction.do?method=courseDetail", params : { couId : value, subMainId : "tab-" + value + "-main" }, scripts: true }); } }
这里的条件语句是用来作判断,我所实现的是只打开一个窗口,根据要求动态加载页面的内容。
- win.load({
url : "../TeacherDispatchAction.do?method=courseDetail", params : { couId : value, subMainId : "tab-" + value + "-main" }, scripts: true });
win.load({url : "../TeacherDispatchAction.do?method=courseDetail", params : { couId : value, subMainId : "tab-" + value + "-main" }, scripts: true });
这句就是用来实现加载的语句。注意:如果请求的页面里也包含EXT组件的话,scripts: true不能丢掉。否则就不会显示啦。
Ext.Window的属性有:
closable : true,
closeAction : 'close'
maximizable : true,
draggable:false,//拖动
来源:(http://blog.sina.com.cn/s/blog_49b531af0100k2ym.html) - EXT之window动态加载页面_酷云_新浪博客
问题分析:
应该是每次需要show window的时候,都new了一个window出来,造成没有使用id属性的组件显示正常,使用id属性的组件因为id冲突,所以显示不出来
解决办法:
1、每次将window关闭的时候不使用hide方式,使用close方式,但是这样会消耗系统资源;
2、仍然使用hide方式,在每次new window之前,先用if判断该window是否已经存在,如果存在,直接show,如果不存在,new一个新的window