ext.data.store ajax,浅谈:Ext.data.JsonStore

浅谈:Ext.data.JsonStore

(2013-05-19 01:41:00)

标签:

浅谈

杂谈

简单的JSONSTOREvar data = [ ['1','name1','descn1'],

['2','name2','descn2'], ['3','name3','descn3'],

['4','name4','descn4'], ['5','name5','descn5']];//二维数组var ds = new

Ext.data.Store({ proxy: new Ext.data.MemoryProxy(data), reader: new

Ext.data.ArrayReader({}, [ {name: 'id'}, {name: 'name'}, {name:

'descn'} ])});ds.load(); //标准

可以作为静态数据来模拟动态的例子。ds要对应两个部分:proxy和reader。proxy告诉我们从哪里获得数据,reader告诉我们如何解析这个数据。现在我们用的是Ext.data.MemoryProxy,它是专门用来解析js变量的。你可以看到,我们直接把data作为参数传递进去了。Ext.data.ArrayReader专门用来解析数组,并且告诉我们它会按照定义的规范进行解析,每行读取三个数据,第一个叫id,第二个叫

name,第三个descn。是不是有些#30524;熟,翻到前面cm定义的地方,哦,原来跟dataIndex是对应的。这样cm就知道哪列应该显示那条数据了。唉,你要是能看明白这一点,那你实在是太聪明了。记得要执行一次ds.load(),对数据进行初始化。有兄弟可能要问了,要是我第一列数据不是id而是name,第二列数据不是name而是id咋办?嗯,嗯按摩椅导购网,这个使用就用mapping来解决。改改变成这样:var ds = new

Ext.data.Store({ proxy: new Ext.data.MemoryProxy(data), //HttpProxy

reader: new Ext.data.ArrayReader({}, [ {name: 'id', mapping: 1},

{name: 'name', mapping: 0}, {name: 'descn', mapping: 2}

])});----------------------------------------------------------------------------------复杂一点的JSONSTOREvar

resourcestore = new

Ext.data.JsonStore({root:'',id:'resourceid',remoteSort: false,

pruneModifiedRecords:true,//设置为true,则每次当store装载或有record被移除时,清空所有修改了的record信息.

默认为false.fields: [ //两对键#20540;对,这是name 'resourceid',

{name:'contentno',mapping:'content.contentno'}, ], proxy: new

Ext.data.HttpProxy({ url:

'operation/resource/manageresource.jsp'//相对路径})});----------------------------------------------------------------------------------load事件store.on('load',function(store,records,o){Ext.Ajax.request({

url :

"operation/task/querytimedeveloperstatustasklist.jsp?developerid="#43;finishtask_store.baseParams.developerid#43;"starttime="#43;finishtask_store.baseParams.starttime#43;"endtime="#43;finishtask_store.baseParams.endtime,method

: 'post',success : function(response, options) { var results =

Ext.util.JSON.decode(response.responseText);

alert(results.totalworkload);//取数据 { totalworkload :

2000}results.tasklist[0].taskid // tasklist :[ {taskid:

1,.....},{taskid:2,.....}.....] 大概就是获取第一条数据的taskid的#20540;。},

failure : function() { result = false;

}});}//从JSONSTORE中取数据方法:store.reader.jsonData['totalworkload']

//马上测试之。。。恍然大悟。

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值