使用Store ajax的方式来获取数据

    <div id="grid1">    </div><script>Ext.onReady(function() {var store = new Ext.data.JsonStore({storeId: 'myStore',// autoLoad: true,//加上这个配置 就无需手动的写store.load()
            proxy: {type: 'ajax',url: 'getImage.php',reader: {type: 'json',root: 'images',//getData的函数最先触发//这里配置过getData就相当于把数据取走了//后面on事件  函数就不能通过records取到数据了 还是可以通过store.getProxy().getReader().rawData去到数据// afterRequest 则根本取不到数据// getData: function(data){//     console.log('getData in reader');//     console.log(data);// }
                }// ,// afterRequest: function(req, res) {//     console.log("After Request!", req.operation.response);// }
            },//alternatively, a Ext.data.Model name can be given (see Ext.data.Store for an example)fields: ['name', 'url', {name: 'size',type: 'float'}, {name: 'lastmod',type: 'date'}]});store.on({'load': function(store, records, success, opts) {console.log('on1');console.log(success);//records 是 []
                console.log(records);//PS rawData是一个{}
                console.log(store.getProxy().getReader().rawData);}}, this, {single:true});store.on('load', function(store, records, success, eOpts ){console.log('on2');console.log(success);console.log(records);console.log(store.getProxy().getReader().rawData);});//这个就是手动load  只是在store.load()的基础上传入了一个config
        store.load({callback: function(records, opts, success) {console.log('load');console.log(success);console.log(records);}});console.log(store);var grid = new Ext.grid.Panel({renderTo: 'grid1',store: store,columns: [{header:'NAME',dataIndex: 'name'}, {header:'URL',dataIndex: 'url'}, {header: 'SIZE',dataIndex:'size'}, {header: 'LASTMOD',dataIndex:'lastmod'}]})});</script>

响应

<?php
echo '{"images":[{"name":"Image one","url":"/GetImage.php?id=1","size":46.5,"lastmod":"2007-11-28T16:00:00.000Z"},{"name":"Image Two","url":"/GetImage.php?id=2","size":43.2,"lastmod":"2007-11-29T16:00:00.000Z"}]}';
?>

PS 动态添加列

        var fields = ['name', 'url', {name: 'size',type: 'float'}, {name: 'lastmod',type: 'date'}];var columns = [{header: 'NAME',dataIndex: 'name'}, {header: 'URL',dataIndex: 'url'}, {header: 'SIZE',dataIndex: 'size'}, {header: 'LASTMOD',dataIndex: 'lastmod'}];var store = new Ext.data.JsonStore({storeId: 'myStore',// autoLoad: true,//加上这个配置 就无需手动的写store.load()
            proxy: {type: 'ajax',url: 'getImage.php',reader: {type: 'json',root: 'images',},afterRequest: function(req, res) {console.log("After Request!", req.operation.response);}},fields: fields});var grid = new Ext.grid.Panel({renderTo: 'grid1',store: store,columns: columns})var column = Ext.create('Ext.grid.column.Column', {text: 'New Column',dataIndex:'newColumn'});var field = new Ext.data.Field({name:'newColumn'});fields.push(field);grid.getStore().model.setFields(fields);grid.getStore().reload();grid.headerCt.insert(grid.columns.length, column);grid.getView().refresh();

不过对于Ext4.0.7版本 则没有 setFields 方法

                    newCols.forEach(function(item){fields.push(item.dataIndex);_columns.push({header: item.header,dataIndex: item.dataIndex});});var storeNew = new Ext.data.Store({fields: fields,data: result.data,reader: {root: 'data',totalProperty: 'total'}});grid.reconfigure(storeNew, _columns);grid.setLoading(false);

使用JsonP的Proxy

    Ext.onReady(function() {var columns = [{header: '编号',dataIndex: 'id'}, {header: '名称',dataIndex: 'name'}, {header: '描述',dataIndex: 'descn'}];//JsonP有两种实现方式var store = new Ext.data.Store({proxy: new Ext.data.ScriptTagProxy({url: 'http://www.mossle.com/data.json',// reader: new Ext.data.JsonReader({//     totalProperty: "totalProperty",//     root: "root",//     id: "id"// }),// 这两种reader的写法都可以
                reader:{totalProperty: "totalProperty",root: "root",id: "id"}}),fields: [{name: 'id'}, {name: 'name'}, {name: 'descn'}]});var store = new Ext.data.Store({proxy:{type:'jsonp',url: 'http://www.mossle.com/data.json',reader: {totalProperty: "totalProperty",root: "root",id: "id"},callbackKey: 'callback' //也可以不写  因为默认这个key就是 callback
            },fields: [{name: 'id'}, {name: 'name'}, {name: 'descn'}]})var grid = new Ext.grid.GridPanel({renderTo: 'grid',width: 350,height: 150,loadMask: true,store: store,columns: columns});store.load();});

响应

Ext.data.JsonP.callback1({"id":0,"totalProperty":5,"successProperty":true,"root":[{"id":"1","name":"name1","descn":"descn1"},{"id":"2","name":"name1","descn":"descn1"},{"id":"3","name":"name1","descn":"descn1"},{"id":"4","name":"name1","descn":"descn1"},{"id":"5","name":"name1","descn":"descn1"}]})

转载于:https://www.cnblogs.com/cart55free99/p/4530275.html

Ext Store Proxy Ajax相关推荐

  1. ExtJs6 理解 -- Ext.data.proxy.Proxy

    2019独角兽企业重金招聘Python工程师标准>>> 1. Ext.data.proxy.Proxy 分类 Proxy 分为 client 和 Server 两种 Client: ...

  2. 预览ExtJS 4.0的新功能(四):焕然一新的Store/Proxy

    焕然一新的Store/Proxy 转载请注明出处Ext中文网 (http://www.ajaxjs.com) . 上期讲到,Ext JS4 可以允许我们定义业务模型之间的关系(Association) ...

  3. ext store 数据修改_extjs 之Ext.data.Store变更单行记录值【修改】

    1.record声明如下 machineuse_record = Ext.data.Record.create([{ name : 'id', type : 'int' }, { name : 'pr ...

  4. [Ext JS6实战] Ajax获取Tree Store

    方式1: 如果返回的数据是TreeSore标准格式. {"text": "Ext","expanded": true,"child ...

  5. ext store 数据修改_Ext 修改Store初始化加载完后修改record属性。

    /** * Created by huangbaidong on 2016/9/18. * 产品组件通用Store,*/Ext.define('app.component.ebs.itemdata.P ...

  6. 【翻译】Ext JS 4——Ajax和Rest代理处理服务器端一场和消息的方法

    原文:EXTJS4 - Handle Server-side exceptions and message from an Ajax or Rest proxy 作者:Raja 可能要处理的情况: s ...

  7. Ext 中使用Ajax

    一般来说,Ext 的Tree, Table直接就继承了Ajax异步方式取数据. 但是在有的时候还是会有单独使用Ajax的状况. Ext中如何单独使用Ajax? 基本的使用方式如下: Ext.Ajax. ...

  8. ext ext.ajax_在Ajax应用程序中使用Ext.Direct

    ext ext.ajax Ajax的概念使Web应用程序可以从缓慢,无响应和违反直觉的方式发展为类似于桌面应用程序的行为,提供即时反馈,消除页面刷新的需求并促进更好的用户体验. Ajax的问题​​在于 ...

  9. ext store 数据修改_Go 数据存储篇(一):基于内存存储实现数据增删改查功能...

    在 Web 编程中,经常需要处理用户请求数据,而用户请求数据的处理往往又涉及到数据存储与获取,支持存储数据的媒介很多,包括内存.文件系统.数据库等,接下来,学院君将花几个篇幅的教程来系统介绍 Go W ...

最新文章

  1. C#精髓【月儿原创】第一讲 使用垃圾回收器
  2. numpy.savetxt()保存两列
  3. matlab比例环节仿真例子,典型环节的MATLAB仿真
  4. jsp与jsp页面间的值传递与接收
  5. Jmeter(三)断言和关联
  6. 每日一测5(关于继承)
  7. 多点触控与多鼠标支持
  8. fibonacci数列python_从 Python 计算 Fibonacci 数列说起
  9. docker构建mysql容器及Navicat 远程连接
  10. 热点|国家动物健康与食品安全创新联盟成立科技创新赋能委员会 并首发动物源食品信任追溯平台...
  11. uniapp小程序分享转发功能
  12. 第四章第四节数据资产盘点-数据资产梳理
  13. 微信V3 - 微信支付统一下单 --01
  14. 中国电信天翼物联品牌升级,注智产业数字化
  15. Valgrind使用介绍
  16. R-quantile()
  17. 每日三个笑话-201510117
  18. Java应用系统监控看这篇就够了
  19. git--分支相关问题的解决
  20. 区块链学习之路[持续更新]

热门文章

  1. activiti 设置候选人_中标 | 河南移动公示无源波分复用设备集采中标候选人名单:3家厂商上榜...
  2. 操作系统—用信号量机制实现进程互斥、进程同步和前驱关系
  3. 网络层地址解析协议ARP
  4. bzoj 3369: [Usaco2004 Feb]Pesky Parentheses 烦人括号(思维题)
  5. 1633: [Usaco2007 Feb]The Cow Lexicon 牛的词典(DP)
  6. bzoj 1009: [HNOI2008]GT考试(dp+kmp+矩阵快速幂)
  7. 大学生程序设计邀请赛(华东师范大学)C:袋鼠妈妈找孩子
  8. matlab空域内图像增强之灰度变换增强
  9. js中数组原型Array、自定义原型函数Array.prototype
  10. Echarts数据可视化title标题,开发全解+完美注释