当前位置: 代码网 > it编程>前端脚本>ExtJs > 基于ExtJs在页面上window再调用Window的事件处理方法

基于ExtJs在页面上window再调用Window的事件处理方法

2024年05月15日 ExtJs 我要评论
今天在开发ext的过程中遇到了一个恶心的问题,就是在ext.window页面,点击再次弹出window时,gridpanel中的store数据加载异常,不能正常被加载,会出现缓存,出现该问题,是因为w

今天在开发ext的过程中遇到了一个恶心的问题,就是在ext.window页面,点击再次弹出window时,gridpanel中的store数据加载异常,不能正常被加载,会出现缓存,出现该问题,是因为window窗口弹出时,两个window同时存在,并且在两个window交替使用时,需要先将一个窗口关闭,关闭时,会对window的缓存进行清理,这样就能保证store数据的正确加载。分享给大家,供参考。

var actinfowindow2;
function showcallflowinfowindow(flowid, actid) {
  var actwindowheight1 = window.innerheight
  || document.documentelement.clientheight
  || document.body.clientheight;
  if(null != upldwin && undefined != upldwin && "" != upldwin){
    upldwin.close();
  }
  // 异常活动模型
  ext.define('callflowmodel', {
    extend: 'ext.data.model',
    fields: [{name: 'instance', type: 'string'},
         {name: 'flowname', type: 'string'},
         {name: 'prjname', type: 'string'},
         {name: 'starttime',  type: 'string'}]
  });
   
  callflowstore = ext.create('ext.data.store', {
    autoload : true,
    model : 'callflowmodel',
    proxy : {
      type : 'ajax',
      url : 'subflow.do',
      reader : {
        type : 'json',
        root : 'callflowlist',
        totalproperty : 'total'
      }
    }, 
    listeners: { 
      'beforeload': function (store, op, options) {
        var params = { 
          //参数 
          flowid : flowid,
          id : actid
        }; 
        ext.apply(store.proxy.extraparams, params); 
      } 
    } 
  });
   
  // 绑定数据模型flowcolumns
  var callflowcolumns = [
    { text: '实例名', dataindex: 'instance', width:174 },
    { text: '工程名', dataindex: 'prjname',width: 174 },
    { text: '工作流名', dataindex: 'flowname',width: 174 },
    { text: '启动时间', dataindex: 'starttime',width: 174 }
  ];
 
  callflowgrid = ext.create('ext.grid.panel', {
    region : 'center',
    //tbar:querybar,
    id:'callflowlist',
    autoscroll : false,
    border:false,
    //columnlines : true,
    //selmodel:selmodel,
    //bbar : pagebar,
    columns : callflowcolumns,
    store : callflowstore,
    loadmask : {
      msg : " 数据加载中,请稍等 "
    }
  });
   
  if (actinfowindow2 == undefined || !actinfowindow2.isvisible()) {
    actinfowindow2 = ext.create('ext.window.window', {
      id : 'actinfowindow2',
      title : '活动信息详情',
      modal : true,
      closeaction : 'destroy',
      constrain : true,
      autoscroll : true,
      width : 700,
      height : actwindowheight1 - 300,
      items : [ callflowgrid ],
      listeners:{
         beforeclose:function(){
           actinfowindow2.destroy();
         }
      }
    });
  }
  actinfowindow2.show();
}
if(null != upldwin && undefined != upldwin && "" != upldwin){

  upldwin.close();
}

我的问题出现就是因为没有添加上面黄色背景的代码片段导致的错误。供大家参考。两个window交替使用时,需要交替关闭,这样才能保证页面的正常。extjs不建议弹出多window同时使用,当然,如果能解决好extjs之间的数据交互,也未必不可以。

以上这篇基于extjs在页面上window再调用window的事件处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com