ExtJs 数据源

常用的数据格式一般都是json或者数组,其他的用得少,要有其他格式,让后台的同事还是转成这两种传过来吧!

 

其实吧数据源store的设置中就两个重要属性,一个是数据从那来的,二是怎么解析那些数据。基本就这两个了,但写法有很多,其实功能都一样,怎么简单就这么来吧,也没必要记那么多。

 

先说说内联数据(也就是js中可以获取的数据)

比如有个预定义的数据arrayData(数组格式)  ,jsonData(json格式)

var arrayData= [
	['1','name1','descn1'],
	['2','name2','descn2'],
	['3','name3','descn3'],
	['4','name4','descn4'],
	['5','name5','descn5']
];

var jsonData= [
               {id:'1',name:'name1',desc:'descn1'},
               {id:'2',name:'name2',desc:'descn2'},
               {id:'3',name:'name3',desc:'descn3'},
               {id:'4',name:'name4',desc:'descn4'},
               {id:'5',name:'name5',desc:'descn5'}
];

 

看看怎么定义store呢(json格式数据用Ext.data.JsonStore ,数组就用Ext.data.ArrayStore)

var store = new Ext.data.JsonStore({
        //从那获取数据,你可以随便选个写法
     data: jsonData ,  
     proxy: new Ext.data.MemoryProxy(data),

        //怎么解析那些数据,你也可以随便写个
     fields:['id', 'name', 'desc'],
        fields:new Ext.data.Record.create(['id', 'name', 'desc']),
        reader: new Ext.data.ArrayReader({}, [
               {name: 'id', mapping: 1},   //假如顺序加数据可以不用指定mapping 的
          {name: 'name', mapping: 0},
               {name: 'descn', mapping: 2}
         ])
 });

 

最后store里的每一个数据都被转成了 Ext.data.Record ,这家伙是个对象,就是个 OO 对象,比如我们想看store里第二个数据的name是什么值,可以这样写

store.getAt(1).name

 

看到这里你可能很失望,我靠,看了那么多,只是个本地化数据的,老子要的是远程加载,后台传过来的数据!你也别生气,其实那个跟本地数据写法差不多的,你把从哪获取数据的地方改下就好了,换成 url 就好.(比如后台数据的请求地址是 ../getPerson 这个servlet ,你写成 url:'../getPerson' )假如你喜欢麻烦,也可以用 proxy的,设置下里边的属性就好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值