ext的store.load的callback如何获得response的值?

问题描述

store.load({params : {start : 0,limit : inputPageSize},callback : function(r, option, success) {//if (success == false) {//Ext.MessageBox.alert('提示', '会话超时,请注销登录4,如注销登录失败重启tomcat');//} alert("call back start"); alert(r[0]); alert ("msg is:"+r[0].get('msg'); if(r[0]){ msg = r[0].get('msg'); if(msg){ Ext.Msg.alert('提示',msg); } } }});})如何获得 r里的值那,比如返回的json值是:{"totalProperty":1,"root":[{"NODEDC":"HL","ISMONITOR":"0","MEMO":"test"}]} 问题补充:to 柴秉承:如何返回的是:{success:false,msg:'A communication error has been detected. Communication protocol being used: Reply.fill(). Communication API being used: InputStream.read(). Location where the error was detected: insufficient data. Communication function detecting the error: *. Protocol specific error codes(s) TCP/IP SOCKETS DB2ConnectionCorrelator: GA194D45.BD3B.110513024207',check:false}如何获得msg的值

解决方案

前台接收的是后台传来的json串 在catch里面一样 也返回一段json串 而这个json串里面装的是错误异常信息 try{out.println({root:[{name:value,,,,,},{name:value,,,,,}]});}catch(Exception ex){out.println({root:[{msg:'sfsdfdsf'}]}}把异常反映该前台 是没有问题的
解决方案二:
{"totalProperty":1,"root":[{"NODEDC":"HL","ISMONITOR":"0","MEMO":"test"}]}获取方法:r.nodedcr.ismonitor
解决方案三:
楼主不要监听 store里的事件,要监听store里定义的proxy事件 比如这个Ext.data.DataProxy里面的load事件(o值就是返回的response了),load : ( DataProxy this, Object o, Object options )Fires before the load method's callback is called.Listeners will be called with the following arguments:this : DataProxyThe proxy for the requesto : ObjectThe request transaction objectoptions : ObjectThe callback's options property as passed to the request functionDataProxy loadexception : ( misc misc )This event is deprecated. The signature of the loadexception event varies depending on the proxy, use the catch-all exception event instead. This event will fire in addition to the exception event.Listeners will be called with the following arguments:misc : miscSee exception.
解决方案四:
前台有异常吗 你在火狐控制台下 看一下响应的json串 是否和你后台传来的一致 如果一致 说明是前台处理有问题 多试一试
解决方案五:
没有哪个参数可以获取到你的msg值,这种情况你只能修改你后台的json格式,如果出错则是查询不到结果,查询不到结果那你的结果集,也就是root中的内容就没有实际意义,你封装成这样{"totalProperty":1,"root":[{"msg":"错误提示"}]}然后你用r[0].msg获取你的错误提示信息
解决方案六:
楼主你好,你只能取到返回记录里面的信息 额外的信息应该是取不到的 {success:false,msg:'A communication error has been detected. Communication protocol being used: Reply.fill(). Communication API being used: InputStream.read(). Location where the error was detected: insufficient data. Communication function detecting the error: *. Protocol specific error codes(s) TCP/IP SOCKETS DB2ConnectionCorrelator: GA194D45.BD3B.110513024207',check:false}这段信息 你可以把他同样放到record的最后一条记录内 当success==false的时候 从record的最后一条记录中去取错误信息 这样处理的话 就需要你在后台对json重新组装一下把错误信息添加到最后一条记录 默认记录为空 出现异常的时候 为最后一条记录赋值 不知道能否明白我的意思正常情况[{name:value,name:value}。。。。。,{msg:}]出现异常的时候可以把记录放到最后一条 或者干脆不要前面的记录 只是返回错误信息[{msg:''}]取记录的时候 使用r[0].msg
解决方案七:
后台返回的json值是:{"totalProperty":1,"root":[{"NODEDC":"HL","ISMONITOR":"0","MEMO":"test"}]}那么r代表的就是root属性内里面的对象数组 通过r参数可以取到的值 只能是{"NODEDC":"HL","ISMONITOR":"0","MEMO":"test"}这里面的属性值
解决方案八:
r返回的是加载的recordcallback : Function 在Record加载之后被调用的函数。 回调函数在load事件被触发后调用, 并且将会被传递如下参数: r : Ext.data.Record[] 所加载的Record数组。 options : 调用load方法时的配置对象。 success : 布尔值,加载是否成功标识位。

时间: 2024-11-05 21:46:43

ext的store.load的callback如何获得response的值?的相关文章

ext中store.load跟store.reload的区别示例介绍_extjs

复制代码 代码如下: reload : function(options){ this.load(Ext.applyIf(options||{}, this.lastOptions)); }, 复制代码 代码如下: load : function(options) { options = Ext.apply({}, options); this.storeOptions(options); if(this.sortInfo && this.remoteSort){ var pn = thi

Ext 的store通过HttpProxy 和 JsonReader 获取不了数据..

问题描述 郁闷好几天... store 里还是没有数据... 真的查不出来原因...兄弟们 指导下啊!!!1. companyList.jsvar proxy = new Ext.data.HttpProxy({url: 'companyData.jsp'});// var reader = new Ext.data.JsonReader({root: 'data'},[{name: 'companyId', type: 'int'}, {name: 'companyName'}, {name:

ExtJs之Ext.data.Store

Ext.data.Store的基本用法 在使用之前,首先要创建一个Ext.data.Store的实例,如下面的代码所示.     1 var data = [ 2 ['boy', 0], 3 ['girl', 1] 4 ]; 5 6 var store = new Ext.data.Store({ 7 proxy: new Ext.data.MemoryProxy(data), 8 reader: new Ext.data.ArrayReader({}, PersonRecord) 9 });

对于Ext.data.Store 介紹 与总结,以及对以前代码的重构与优化

     对于Ext.data.Store 一直不是很了解,不知道他到底是干嘛的有哪些用处,在实际开发中也由于不了解也走了不少弯路, store是一个为Ext器件提供record对象的存储容器,行为和属性都很象数据表. 由于刚学不是太懂,都是比葫芦画瓢,东搬西畴的去完成功能.程序思路都是自己想象的,对于rest方式的增删改查全是采用另外一种方式去实现的,最后研究发现其实,store都 已经有了这些函数,根本不用自己去实现.下面看下以前所写的代码:这是model,store ,gridpanel

Extjs 项目中常用的小技巧,也许你用得着(5)--设置 Ext.data.Store 传参的请求方式

1.extjs 给怎么给panel设背景色 设置bodyStyle:'background:#ffc;padding:10px;', var resultsPanel = Ext.create('Ext.panel.Panel', { title: 'Results', width: 600, height: 400, renderTo: Ext.getBody(), bodyStyle: 'background:#ffc; padding:10px;', layout: { type: 'vb

Ext JS 增删改 Ext.Net.Store详细教程

本文内容 引入 演示用 Ext JS 增删改 Ext.Net.Store 说明 参考资料   引入 当我使用 Ext.Net 时,始终不能摆脱最初开发 asp.net 应用程序的方式,也就是,前后台的交互.当你用 asp.net 的思维方式,开发 Ext.Net 时,你会发现应用程序问题很多,我所见过的,比如,页面闪的厉害(刷新次数太多,虽然也是局部刷新):页面脚本错误:页面 CSS 错误等等.这充分说明,错误地使用了 Ext.Net.没有理解 Ajax.知道与会用往往是两回事. 现在,我既不想

Extjs 继承Ext.data.Store不起作用原因分析及解决_extjs

关于这个原因有很多种,我只说下我遇到的 我这样 写Store来复用的 复制代码 代码如下: DocStore = Ext.extend(Ext.data.Store,{ initComponent:function(){ this.proxy = new Ext.data.HttpProxy({url:this.url}); this.reader = new Ext.data.JsonReader( { totalProperty: 'results', root: 'rows', id:'d

mvc4 中用Ext.Net 的TreePanel如何取到点击节点的值

问题描述 mvc4 中用Ext.Net 的TreePanel如何取到点击节点的值 代码如下 @( Html.X() .TreePanel() .Title("Tree") .Width(300) .Height(300) .Border(false) .Root(Html.X().Node().NodeID("1").Text("文具")) .Listeners(l => l.BeforeLoad.Fn = "nodeLoad&q

Ext.data.Store 的Load 中的callback回调方法

问题描述 varfieldsMaterialPchChangeD=["materialTypeName"];MaterialPchChangeDstore=newExt.data.GroupingStore({proxy:newExt.data.HttpProxy({url:"MaterialAction.aspx?method=GetMatPchChangeDetail",method:"POST"}),reader:newExt.data.J