关于Extjs4.2的一些BUG
来源:互联网 发布:玛吉史密斯知乎 编辑:程序博客网 时间:2024/05/22 20:29
手头上的一个项目用到Extjs4.2框架,使用过程中发现这个版本的Extjs还是存在挺多bug的。我遇到的bug中,有一些原因不详,虽然通过修正ext-all.js源码能解决,但不清楚根本原因,故不在此处提出。下面是我能确认的几个bug:
1、Ext.data.Store配置autoLoad失效问题
代码如下,定义了如下全局变量store_UserInfo,在js加载的时候store_UserInfo竟然触发了beforeload事件,说明这个store在创建的时候自动调了一次load()方法。
var userInfo_Data = {"count":0,"list":[]};var store_UserInfo = Ext.create('Ext.data.Store', { model : 'model_userinfo', pageSize : 50, autoLoad : false, //此处配了autoLoad为false data : userInfo_Data,//此处指定了data proxy : { type : 'memory', reader : { type : 'json', root : 'list', totalProperty: 'count', } }, listeners : { beforeload:function(obj, opt){ //store_UserInfo创建后自动地跳到这里 loadUserInfo(opt.start, opt.limit, userInfo_query); } }});
我查了Extjs4.2的开发文档,如下图。文档是这样说的:如果没有指定data,且autoLoad为true或一个Object对象,那么store会在创建后自动调用load方法
奇怪的是我指定了data,且autoLoad为false,store还是自动调了load()方法。我调试了一下,发现无论autoLoad设为true、设为false、或是缺省,store在创建后都会自动调用load()方法,也就是说autoLoad失效了。
我查了ext-all-debug.js源码,找到定义Ext.data.Store的代码段,store的construtor构造函数里有一段代码,如下图
发现,如果data设了值且proxy配了Ext.data.proxy.Memory类型的proxy,不管autoLoad是什么,store都会调read()的方法加载数据,所以触发了beforeload事件。所以,如果要想在store配了data和memory型的proxy时,控制store是否自动加载数据,做如下修改
proxy = me.proxy; data = me.inlineData; if (data) { if (proxy instanceof Ext.data.proxy.Memory) { proxy.data = data; //autoLoad : false 失效修正 if(me.autoLoad){ me.read(); } //me.read(); //修正前 } else { me.add.apply(me, data); } me.sort(); delete me.inlineData; } else if (me.autoLoad) { Ext.defer(me.load, 10, me, [typeof me.autoLoad === 'object' ? me.autoLoad: undefined]); }
修正后,autoLoad就生效了,缺省情况下不会自动load。
2、Ext.grid.column.Action标题不能显示的问题
在指定标题内容时,我用text指定Ext.grid.column.Action的标题,但是确显示为空。代码如下:
查看ext-all.js,发现Ext.grid.column.Action 与 Ext.grid.column.Column不一样,后者是通过配置text属性来指定标题内容,Ext.grid.column.Action是通过配置header属性来指定。
让人困惑的是Extjs4.2的文档中Ext.grid.column.Action也是通过text属性来指定标题,且没有header属性。
把Ext.grid.column.Action的text改为header即能正常显示标题。
- 关于Extjs4.2的一些BUG
- extjs4 的一些bug 及解决办法
- Extjs4 关于Store的一些操作
- 关于tableview的一些bug
- 关于myeclipse安装extjs4.2提示插件spket遇到的一些问题及解决办法
- extjs4.2 -- 关于window窗口的问题
- 关于later discovery bug的一些想法
- 收集一些关于IE的BUG
- extjs4.2 关于sync()
- 关于一些常见bug
- 关于extjs4的行列操作
- 自己测试的关于 document.all.checkbox 的一些BUG
- Extjs4.2的Row Editing在IE中按钮在上方的bug
- 关于ExtJS3.1与ExtJS4.2的区别
- 谈谈关于IE8的一些bug,主要是base href
- 关于编译器的一些小bug.(针对VS2003)
- 关于自动提交表单BUG的一些心得
- 关于bug分析与异常处理的一些思考
- ASP.net生成各种随机数字,用于优惠券、验证码等
- Wireshark capture filter设置
- Ubuntu下显示git分支的状态
- 记录一个JQUERY模仿序列号输入
- 使用UpdatePanel时触发JS的方法
- 关于Extjs4.2的一些BUG
- html系列--浏览器加载和渲染html的顺序
- 解决AJAX提示SYS未定义一例
- linux hook
- 求两个升序序列的和中最小的k个数
- 邮件发送错误解决一例
- Redis 起步
- CodeSmith学习笔记
- PowerDesigner设置Table的默认属性值(字体颜色,大小,主键颜色等)