ext window窗口

EXTJS用起来有时真让人莫名奇妙,也许只因尚是粗浅的接触,很多用法不甚了解。。要学习!

问题:在一弹出新增信息窗体(window)新增信息成功后,在未关闭该窗口前,提示打开另一设置附加信息的窗体,附加窗体莫名的出项错位,不解。。

因此搜索关于ext.window的用法,以下虽不是所问的也可启发下。

首先看下普通的窗口:

Js代码
  1. functionnewWin() { varwin=newExt.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(); }

这样就是一个简单的窗口,里面不含任务内容。可以让它请求一个页面:

Js代码
  1. varwin;
  2. functionnewWin(value) {
  3. // 如果窗口存在,显示
  4. win = Ext.getCmp("win");
  5. if(win) {
  6. win.show();
  7. win.load({
  8. url: "../TeacherDispatchAction.do?method=courseDetail",
  9. params: {
  10. couId: value,
  11. subMainId: "tab-" + value + "-main"
  12. }
  13. });
  14. } else{
  15. win = newExt.Window({
  16. title: "课程信息",
  17. id: 'win',
  18. width: 400,
  19. height: 300,
  20. maximizable: true,
  21. closable: true,
  22. closeAction: 'close'
  23. });
  24. win.show();
  25. win.load({
  26. url: "../TeacherDispatchAction.do?method=courseDetail",
  27. params: {
  28. couId: value,
  29. subMainId: "tab-" + value + "-main"
  30. },
  31. scripts:true
  32. });
  33. }
  34. }
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 }); } }

这里的条件语句是用来作判断,我所实现的是只打开一个窗口,根据要求动态加载页面的内容。

Js代码
  1. win.load({
  2. url : "../TeacherDispatchAction.do?method=courseDetail",
  3. params : {
  4. couId : value,
  5. subMainId : "tab-"+ value + "-main"
  6. },
  7. scripts: true
  8. });
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' 关闭窗口是销毁窗口,为'hide'则隐藏

maximizable : true, //是否可最大化
draggable:false,//拖动
resizable: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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值