今天在开发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的事件处理的更多相关文章

  1. vue:再vue-cli项目中使用window以及调用window上的方法

    一: 1:在main.js中 Vue.prototype.myfunction = function() {/*你的自定义Vue方法*/} 2:在mounted(或其他生命周期中) 或者 method ...

  2. JavaScript的三种对话框是通过调用window对象的三个方法alert(),confirm()和prompt()

    第一种:alert()方法 alert()方法是这三种对话框中最容易使用的一种,她可以用来简单而明了地将alert()括号内的文本信息显示在对话框中,我们将它称为警示对话框,要显示的信息放置在括号内, ...

  3. window.opener调用父窗体方法的用法

    应用实例:        function BindWindowCloss() {            $(window).bind('beforeunload', function () {    ...

  4. Qt刷新机制的一些总结(Qt内部画的时候是相当于画在后台一个对象里,然后在刷新的时候调用bitblt统一画,调用window的api并不会影响到后面的那个对象)

    前段时间做过一个界面刷新的优化,遇到的坑比较多,在这里做一点点总结吧.     优化的方案是滚动滚动条的时候用截屏的方式代替界面全部刷新,优化完成后,界面在滚动时效率能提升大概一倍,背景介绍完毕.   ...

  5. js实现跨域(jsonp, iframe+window.name, iframe+window.domain, iframe+window.postMessage)

    一.浏览器同源策略 首先我们需要了解一下浏览器的同源策略,关于同源策略可以仔细看看知乎上的一个解释.传送门 总之:同协议,domain(或ip),同端口视为同一个域,一个域内的脚本仅仅具有本域内的权限 ...

  6. window.parent与window.opener的区别

    有这样一个需求,弹出一个新窗口 并从该新页面的select选择框中选择需要的类别,再返回到之前的父窗口页面的某个文本框中.这里就要用到window.parent和window.opener 如题两种方 ...

  7. js数据放入缓存,需要再调用

    再贴代码之前先描述下,这个技术应用的场景:一个页面的http请求次数能少点就少,这样大大提高用户体验.所以再一个页面发起一个请求,把所有数据都拿到后储存在缓存里面,你想用的时候再调用出来,这个是非常好 ...

  8. 完好用户体验: 活用window.location与window.open解决页面跳转问题

    原文地址: JavaScript Redirects and window.open原文日期: 2014年08月27日翻译日期: 2014年08月31日翻译人员: 铁锚 (译者注: 本文解决的是按 C ...

  9. window.parent与window.opener、window.showModalDialog的区别 opener和showModalDialog刷新父页面的方法

    项目中使用案例: 父窗体 <s:form namespace="/forexagent" id="listSearchForm" name="t ...

随机推荐

  1. 在nginx环境下,直接用域名访问(首页)

    ①: server { listen 80; server_name www.njm1.com; location = / { #=/规则可以直接访问域名.如:www.njm1.com.跳转到http ...

  2. 如何借助windows的VHD引导特性实现VHD多windows系统共存

    近期,由于一些需要,需要运行3个windows系统,具体需要如何此处略去,现将实现方式共享如下. 测试环境: HP 820 G2, 4G内存, 500G SSD硬盘 windows 7 企业版 win ...

  3. 地牢逃脱(BFS(广度优先搜索))

    题目描述 给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一 ...

  4. StreamSets小白踩过的一些坑

    由于公司业务上的需求,需要实时监控mysql数据库的数据的增长,并将数据同步到另一个平台,所以就问老大使用什么工具比较好,老大推荐使用StreamSets,还说在测试环境都已经部署好了StreamSe ...

  5. Ext JS 6学习文档-第3章-基础组件

    Ext JS 6学习文档-第3章-基础组件 基础组件 在本章中,你将学习到一些 Ext JS 基础组件的使用.同时我们会结合所学创建一个小项目.这一章我们将学习以下知识点: 熟悉基本的组件 – 按钮, ...

  6. Python中package的导入语法

    在Python中,一个目录被称为一个package.import和from语法除了导入module文件之外,还可以导入package,语法如下: # import语法 import dir1.dir2 ...

  7. string && 字符数组

    一.string 1. 使用字符串字面值初始化string对象 如:string s1 = "hiya"; string s2("hiya"); 该字面值的最后 ...

  8. 软件功能-东北师大站-第三次作业(PSP)

    1.本周PSP 2.本周进度条 3.本周累计进度图 代码累计折线图 博文字数累计折线图 本周PSP饼状图

  9. 20145214实验四 Android开发基础

    20145214实验四 Android开发基础 实验内容及步骤 安装 JDK 并配置 JDK 环境变量 找到之前path变量中的jdk文件所在位置并复制. 用复制的变量名新建一个 JAVA_HOME ...

  10. C与C++,面向过程与面向对象

    C与C++在电梯处理上的不同 (注:个人理解) 对比区别: C语言程序制定具体流程,按流程逐步进行. C++程序将过程结构化,需要使用时利用接口访问与调用不同功能的类结构结构. 电梯类代码 电梯类定义 ...