`
czpae86
  • 浏览: 713781 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

阅读更多

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

 

 

{"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;

这样就实现了。

 

分享到:
评论

相关推荐

    ext 基本知识-store-proxy-reader-ext-connection-实例

    conn.request({ success: function(response) { Ext.Msg.alert('info', response.responseText);...var ds = Ext.data.JsonStore({ url: 'xxx.jsp', root: 'root', fields: ['id','name','descn'] });

    Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别

    (1)Ext.FormPanel f.getForm().submit({ url:”……”, params:{ XX:xx …..} success: function (c,v,e) { //e: 触发事件 var json=Ext.decode(v.response.responseText); }, failure:function(c,v,e){} }) (2)Ext....

    一个简单的Ext.XTemplate的实例代码

    把省份与城市以树的形式输出 代码如下: ... //获取后台回调的省份城市JSON格式数据 var response = Ext.util.JSON.decode(data.responseText); var province = new Ext.XTemplate( ‘”pros”>’,//遍历读取pros ‘<

    Ajax中responseText返回的是一个页面而不是一个值

    自己在struts2中的写好了业务逻辑用response返回的内容却是... 您可能感兴趣的文章:ajax的responseText乱码的问题的解决方法jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXMLAjax request response 乱码解决

    ext前台接收action传过来的json数据示例

    ext前台接收action传过来的json数据 代码如下: Ext.Ajax.request({ method:’POST’,//请求方式 params : {dagl_code:dagl_code}, url:lcwPath+”/daxt/lcgl.shtml?method=getJgBycode”,//请求的url地址 success: ...

    asp.net ajax操作xmlHttpRequest对象返回的ResponseXML和ResponseText例子

    asp.net ajax操作xmlHttpRequest对象返回的ResponseXML和ResponseText例子

    XMLHttpRequest

    1.js对象 XMLHttpRequest 属性: 1.readyState属性 readyState:只读属性。 作用:通过读取该属性,从而知道XMLHttpRequest 目前进行到了哪一步 取值: 状态码 名称 描述 0 未初始化 默认状态,...

    ExtJS实现文件下载的方法实例

    前台代码: 代码如下:Ext...{ if(btn==”yes”){ Ext.Ajax.request({ url:”可以获得要下载文件的url”, success:function(res){ var obj =Ext.decode(res.responseText); //alert(res.responseText); wi

    Head First Ajax

    Get the server's response from the request object's responseText property.......................................................... 36 Section 1.19. Goodbye traditional web apps.........................

    网络获取json解析json以及子线程显示

    xmlPullParser.setInput(new StringReader(xmlData)); int eventType = xmlPullParser.getEventType(); String id = ""; String name = ""; String version = ""; while (eventType != XmlPullParser.END_...

    XMLHttpRequest中文参考手册.pdf

    服务器返回XML文档并显示 var xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP.3.0"); xmlHttpReq.open("GET", "http://localhost/books.xml", false); xmlHttpReq.send(); alert(xmlHttpReq.responseText); ...

    PHP100视频教程 48:Ajax+PHP快速上手及应用

    1、ajax是什么及其工作原理Ajax 由 HTML、JavaScript 技术、DHTML 和...3、XMLHttpRequest对象相关方法XMLHttpRequest.open(传递方式,地址,是否异步请求)XMLHttpRequest.onreadystatechangeXMLHttpRequest.responseText

    VBA-通过标签获取网页数据.rar

    从本地html文件中提取内容,支持弹框显示选择的HTML页面,获取对应的标签,或者对应的文本,修改下就可以用了

    PHP100视频教程 48:Ajax PHP快速上手及应用.rar

    方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。 2、创建XMLHttpRequest对象 对于Ajax,最核心的一个对象是XMLHttpRequest,所有的Ajax操作都离不开对这个对象的操作 xmlHttp = new XMLHttpRequest(); ...

    AJAx发送请求,获取返回值,判断处理返回结果

    AJAx发送请求,获取返回值,判断处理返回结果

    ajax的responseText乱码的问题的解决方法

    关于ajax的responseText乱码的问题这个问题让我和纠结百度了好多都说是javascript的编码问题但是我的 javascript的编码是和myeclipse一样的为什么还会出现问题。最后猜测可能是服务端没有设置返回的字符的 返回类型...

    jquery插件使用方法大全

     代码 $("selector").load(url,data,function(response,status,xhr)) 该方法是最简单的从服务器获取数据的方法。它几乎与 $.get(url, data, success) 等价,不同的是它不是全局函数,并且它拥有隐式的回调函数。当...

    ajax运用实例得到的得到

    var res=XMLHttpReq.responseXML.getElementsByTagName("res")[0].firstChild.data; // var res=XMLHttpReq.responseText; window.alert(res); } else { //页面不正常 window.alert("您所请求的页面有异常。")...

    jsp ajax实例

    var res=XMLHttpReq.responseXML.getElementsByTagName("res")[0].firstChild.data; // var res=XMLHttpReq.responseText; window.alert(res); } else { //页面不正常 window.alert("您所请求的页面有异常。")...

    js(javascript)获取网页源码

    //直接通过XMLHttpRequest对象获取远程网页源代码 function getSource() { var url = document.getElementById("url").value; //获取目标地址信息 //地址为空时提示用户输入 if (url == "") { alert("请输入...

Global site tag (gtag.js) - Google Analytics