是的,开发部开发机器不能上网,我才想到这方法。万分感谢!
{"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.data是一个专门处理数据的模块,它包含了store、reader和proxy等组件,这些组件协同工作以确保数据在前端和后端之间高效、灵活地流动。Store是数据容器,负责存储和管理数据;Reader则负责解析从服务器接收到的...
`response`对象包含服务器返回的状态信息,可以通过`response.status`和`response.statusText`获取HTTP状态码和状态消息,`response.responseText`或`response.responseXML`获取原始响应数据。 标签中的“源码”...
### extjs前后台交互参数出现中文乱码问题的解决方法 #### 问题背景与原因分析 在使用MyEclipse开发工具进行Web应用开发时,尤其是采用ExtJS框架结合Ajax技术进行前后端数据交互的过程中,可能会遇到一个常见的...
如果数据需要从后台获取,我们可以使用`Ext.data.JsonStore`或`Ext.data.Store`与`Ext.Ajax.request`结合。例如: ```javascript Ext.Ajax.request({ url: 'getData.php', // 后台数据接口 success: function...
然后,创建一个`Ext.data.Store`实例,并设置`reader`为`ArrayReader`,这样我们就可以解析从服务器返回的数组数据。在成功获取数据后,使用`Ext.Ajax.request`方法将数据存储到`PagingMemoryProxy`中,如下所示: ...
5. **Ext.data.Store**:Store是用来存储数据的容器,它可以与表单联动。在动态加载数据时,我们可以创建一个Store,然后将JSON数据加载到Store中,再将Store绑定到表单。 6. **Ext.form.Basic**:每个表单都包含一...
### Extjs数据存储与传输详解 #### 一、Ext.data简介 **Ext.data**是Extjs框架中的核心组件之一,负责处理数据的加载、存储、转换...通过对Ext.data模块的理解和运用,可以极大地提高前端应用的开发效率和用户体验。
reader: new Ext.data.JsonReader({ root: 'menus', idProperty: 'id' }), fields: ['id', 'text'] }); var menu = new Ext.menu.Menu({ items: [{ text: 'Loading...', disabled: true }], store: ...
Ext.ux.UploadDialog是Ext JS库的一个用户界面插件,专为实现文件上传对话框而设计。这个组件扩展了Ext JS的基本功能,提供了一个友好且功能丰富的文件上传界面,适用于Web应用程序中的各种文件管理需求。 在Ext JS...
使用EXT,可以通过简单的方法获取DOM节点,例如: ```javascript var elements = Ext.get('someElementId'); ``` 如果需要获取多个节点,则可以使用`query`方法: ```javascript var nodes = Ext.query('div....
1. **连接后台**:首先,我们需要使用Ajax请求或者其他数据获取技术(如Sencha Direct或Ext.data.Store)与后台服务器通信。通常,我们会创建一个`Ext.Ajax.request`或者使用`Ext.data.proxy.Proxy`来发送HTTP请求到...
var parentStore = Ext.create('Ext.data.Store', { /* ... */ }); var parentComboBox = Ext.create('Ext.form.field.ComboBox', { store: parentStore, displayField: 'name', valueField: 'id', listeners:...
- **自动处理表单数据**:`getForm().submit()`会自动获取表单内的所有字段值,无需手动构建参数对象。 - **内置验证**:在提交前,`getForm().submit()`会检查表单内所有字段的验证规则,如果存在无效的数据,会...
在探讨“Sencha Touch2 AJAX获取数据”的主题时,我们首先需要理解Sencha Touch2框架...通过熟练掌握`Store`、`Reader`和`Ext.Ajax.request`等核心概念,开发者可以有效地管理数据流,实现更加复杂和响应式的用户界面。
你可以使用`Ext.Ajax.request`方法发送异步请求,或者配置`Ext.data.Store`以自动加载和保存数据。 例如,使用`Ext.Ajax.request`获取数据: ```javascript Ext.Ajax.request({ url: 'your/api/url', method: '...
在这个例子中,`response.responseText`包含了服务器返回的JSON字符串,`Ext.decode`将其转换为JavaScript对象,从而可以方便地访问其属性。 ##### 2. 使用`Ext.util.JSON.decode` 这是一种替代方案,与`Ext.decode...
var comboBoxStore = new Ext.data.Store({ data: comboBoxData, fields: ['id', 'text'] }); comboBox.setStore(comboBoxStore); ``` 这样,ComboBox的选择项就被动态地更新为树节点的文本了。 总结,通过异步...
开发者可以通过设置`xmlData`参数来传递XML文档。这在与那些需要或偏好XML格式数据的服务器交互时特别有用。例如: ```javascript var xmlData = '<request><username>admin</username><password>secret</password>...