基于ExtJs在页面上window再调用Window的事件处理方法
今天在开发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的事件处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
解决Extjs4中form表单提交后无法进入success函数问题
form表单提交后无法进入success函数的问题,很是常见,下面有个不错的解决方法,感兴趣的朋友可以参考下2013-11-11常用Extjs工具:Extjs.util.Format使用方法
常用Extjs工具:Extjs.util.Format使用方法,需要的朋友可以参考下2012-03-03关于viewport,Ext.panel和Ext.form.panel的关系
那个深入浅出ext作者比我还懒 viewport存放Ext.panel对象,其容器中的成员可以以borderlayout方式布局2009-05-05
最新评论