`
skzr.org
  • 浏览: 356725 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Ext.data.ArrayReader的bug

阅读更多

官方提交bug详情:Ext.data.ArrayReader.readRecords have a bug when mapping 'prop1.propNext'

* Ext 3.2.0
Adapter used:
    * ext
css used:
    * only default ext-all.css
Browser versions tested against:
    * FF3 (firebug installed)
Operating System:
    * ubuntu 9.10 64bit
Description:
    * Ext.data.ArrayReader.readRecords have a bug when mapping 'prop1.propNext'
Test Case:

var record = Ext.data.Record.create([
        {name: 'id', mapping: 'id'},
        {name: 'name', mapping: 'text'},
        {name: 'info', mapping: 'userData.info'},
        {name: 'order', mapping: 'userData.order'}
    ]);
    var store = new Ext.data.Store({sortInfo: {field: 'order'}, reader: new Ext.data.ArrayReader({id: 'id'}, record)})
    var win = new Ext.Window({
        closable: false,
        layout: 'fit',
        width: 700, height: 400,
        items: [{
            xtype: 'grid', title: ' ', iconCls: 'x-tree-node-icon-folder',
            tbar: ['-', {text: 'refresh'}, '-', '->'],
            columns: [
                {header: 'ID', dataIndex: 'id', menuDisabled: true, hidden: true, width: 40, sortable: true, align: 'right'},
                {header: 'name', dataIndex: 'name', hideable: false, width: 80, sortable: true},
                {header: 'info', dataIndex: 'info', width: 100, sortable: true},
                {header: 'order', dataIndex: 'order', width: 40, sortable: true, menuDisabled: true}
            ],
            store: store
        }]
    });
    win.show();
    var datas = [];
    for (var i = 0; i < 10; i++) {
        datas[i] = {id: i, text: 'text' + i, userData: {info: 'info' + i, order: i % 5}};
    }
    store.loadData(datas);
 

var record = Ext.data.Record.create([
{name: 'id', mapping: 'id'},
{name: 'name', mapping: 'text'},
{name: 'info', mapping: 'userData.info'},//根据mapping的定义是支持这样映射的
{name: 'order', mapping: 'userData.order'}//not any effect too
]);

My fix:
the right code is:
var records = this.extractData(this.getRoot(o), true);

if (Ext.version == '3.2.0') {
    Ext.apply(Ext.data.ArrayReader.prototype, {
        readRecords : function(o){
            this.arrayData = o;
            var s = this.meta, success = true, v;

           var records = this.extractData(this.getRoot(o), true);
            var totalRecords = records.length;
   
            if(s.totalProperty) {
                v = parseInt(this.getTotal(o), 10);
                if(!isNaN(v)) {
                    totalRecords = v;
                }
            }
            if(s.successProperty){
                v = this.getSuccess(o);
                if(v === false || v === 'false'){
                    success = false;
                }
            }
   
            return {
                success : success,
                records : records,
                totalRecords : totalRecords
            };
        }
    });
}
 

 

分享到:
评论

相关推荐

    EXT核心API详解

    31、Ext.data.DataReader类 ……………26 32、Ext.data.ArrayReader类 …………… 26 33、Ext.data.JsonReader类 …………… 26 34、Ext.data.XmlReader类 …………… 27 35、Ext.data.Store类 …………………… 28 ...

    ExtJS入门教程(超级详细)

    31、Ext.data.DataReader类 ……………26 32、Ext.data.ArrayReader类 …………… 26 33、Ext.data.JsonReader类 …………… 26 34、Ext.data.XmlReader类 …………… 27 35、Ext.data.Store类 …………………… 28 ...

    精通JS脚本之ExtJS框架.part1.rar

    13.6.2 Ext.data.ArrayReader 13.6.3 Ext.data.JsonReader 13.6.4 Ext.data.XmlReader 13.7 Ext.ux.DWR 13.7.1 Ext.data.DwrProxy 13.7.2 Ext.data.DWRTreeLoader 13.7.4 Web服务端配置 13.7.5 服务层接口 ...

    精通JS脚本之ExtJS框架.part2.rar

    13.6.2 Ext.data.ArrayReader 13.6.3 Ext.data.JsonReader 13.6.4 Ext.data.XmlReader 13.7 Ext.ux.DWR 13.7.1 Ext.data.DwrProxy 13.7.2 Ext.data.DWRTreeLoader 13.7.4 Web服务端配置 13.7.5 服务层接口 ...

    Ext+JS高级程序设计.rar

    7.3 Ext.data.Record 198 7.4 ArrayReader、JsonReader和XmlReader 199 7.4.1 JsonReader 200 7.4.2 ArrayReader 200 7.4.3 XmlReader 201 7.5 Store的加载数据 201 7.6 Store的数据操作 203 7.6.1 添加数据 203 ...

    Ext深入浅出 数据传输

    10.6.1 ArrayReader.........................241 10.6.2 JsonReader ...........................242 10.6.3 XmlReader..............................243 10.7 高级store...........................................

    基于extjs的.NET3.5控件Coolite 1.0.0.34580(Preview预览版)

    31. ArrayReader: added IDProperty and IDIndex (instead of ReaderID) 32. Renamed StoreResponseData class .TotalCount property to .Total. 33. Renamed StoreRefreshDataEventArgs class .TotalCount ...

    Ext 开发指南 学习资料

    8.4. Ext.data命名空间 8.4.1. proxy系列 8.4.1.1. 人畜无害MemoryProxy 8.4.1.2. 常规武器HttpProxy 8.4.1.3. 洲际导弹ScriptTagProxy 8.4.2. reader系列 8.4.2.1. 简单易行ArrayReader 8.4.2.2. 灵活轻便...

    EXT2.0中文教程

    8.4. Ext.data命名空间 8.4.1. proxy系列 8.4.1.1. 人畜无害的MemoryProxy 8.4.1.2. 常规武器HttpProxy 8.4.1.3. 洲际导弹ScriptTagProxy 8.4.2. reader系列 8.4.2.1. 简单易行ArrayReader 8.4.2.2. 灵活轻便...

    EXT教程EXT用大量的实例演示Ext实例

    8.4. Ext.data命名空间 8.4.1. proxy系列 8.4.1.1. 人畜无害的MemoryProxy 8.4.1.2. 常规武器HttpProxy 8.4.1.3. 洲际导弹ScriptTagProxy 8.4.2. reader系列 8.4.2.1. 简单易行ArrayReader 8.4.2.2. 灵活轻便...

    扩展ArrayReader

    可以支持带total的array数组数据(ext自带的ArrayReader只支持array型数据)

    java自动编译源码-java-source-watcher:在当前目录中自动编译Java源代码。凌乱,棘手的权宜之计

    ArrayReader.java changed; compiling and running... 2019-08-28 06:37:36 ~ Exceptions.java changed; compiling and running... 2019-08-28 06:37:36 ~ Matrix.java changed; compiling and running... 2019

Global site tag (gtag.js) - Google Analytics