当前位置:首页 > 开发 > Web前端 > Ext > 正文

通过重写reader对象的read方法,使得Ext.data.Store可以获取后台返回的responseText

发表于: 2010-08-20   作者:czpae86   来源:转载   浏览次数:
摘要: 是的,开发部开发机器不能上网,我才想到这方法。万分感谢!     {"rows":[{"name":"开发部","id":"1000001","number":"11"}, {"name":"市场部&q

是的,开发部开发机器不能上网,我才想到这方法。万分感谢!

 

 

{"rows":[{"name":"开发部","id":"1000001","number":"11"},
{"name":"市场部","id":"1000002","number":"22"}]},
totalCount:2,money:3000}  

 

 

 

上面是一个后台返回的grid分页json格式数据,

那么我们怎么获得"money"这个键对应的值呢?(注意:只调一次后台,而且grid是分页的)。

按平时的情况,store设置了root:'rows'属性后,我们通过操作store也只能获得rows:[]里面的数据。

去看ext里面的源码发现Ext.data.JsonReader(这里使用的是Ext.data.JsonReader)是通过read方法获取后台返回的数据信息的:

read : function(response){
        var json = response.responseText;
        var o = Ext.decode(json);
        if(!o) {
            throw {message: 'JsonReader.read: Json object not found'};
        }
        return this.readRecords(o);
   }

 

没有错我们看到了response,既然这样我们只要在这里作修改便可!

重写Ext.data.JsonReader的read方法,为Reader增加一个responseText属性

Mic.JsonReader = Ext.extend(Ext.data.JsonReader, {
	read : function(response){
        var json = response.responseText;
        var o = Ext.decode(json);
        this.responseText = json;
        if(!o) {
            throw {message: 'JsonReader.read: Json object not found'};
        }
        return this.readRecords(o);
    }
});

 

把我们定义的store里面的

reader : Ext.data.JsonReader({属性代码省略......}),

换成

reader : Mic.JsonReader({......}),

就可以通过store获得后台返回的所有信息!

上面为例子定义一个store:

var ds = new Ext.data.Store({

//其他代码省略...............

//....................

reader :  Mic.JsonReader({......})

});

获得方法:

var o = Ext.decode(ds.reader.responseText); 

var money = o.money;

这样就实现了。

 

通过重写reader对象的read方法,使得Ext.data.Store可以获取后台返回的responseText

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
JSON主要创建如下两种数据对象: 由JSON格式字符串创建,转换成JavaScript的Object对象; 由JSON格
W3C提供了一个文本的TextRectangle 对象,这个对象是对文本区域的一个解释。这里的文本区域只针对in
项目源代码下载:http://download.csdn.net/detail/nuptboyzhb/6262253 1.简介 本文主要演示Jquery
需要反射的DLL里的一个类: namespace ElegantWM.WebUI.Areas.Admin.Controllers { [Description("
Google Reader的一个典型问题是未阅读条目“超标”,超出1000+并不稀奇。几天不读GR,未读条目就失
1.在项目中为了处理用户上传的图片,会对图片进行重写处理,故使用了类似下面的代码: File src = n
1.在项目中为了处理用户上传的图片,会对图片进行重写处理,故使用了类似下面的代码: File src = n
1.在项目中为了处理用户上传的图片,会对图片进行重写处理,故使用了类似下面的代码: File src = n
1.在项目中为了处理用户上传的图片,会对图片进行重写处理,故使用了类似下面的代码: File src = n
对于这次的任务,一定要写一下博文了,不然,很多人也跟着我走老路,错路,这两天我一直负责研究:
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号