注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北漂的小羊

Java编程,开发者,程序员,软件开发,编程,代码。新浪微博号:IT国子监

 
 
 

日志

 
 
关于我

在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(http://weibo.com/itguozijian)

网易考拉推荐

Extjs-数据存储与传输(几种Store 讲解)  

2012-10-26 19:14:43|  分类: Ext Js |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1.store传参的几种方法
Js代码 
  1. //第一种     
  2. var store = new Ext.data.Store({    
  3.     baseParams: {    
  4.         params1 : '1',    
  5.         params2 : '2'    
  6.     }    
  7. });    
  8. //第二种     
  9. var params = {start:0,limit:limit};    
  10. store.load({params: params});    
  11. //第三种     
  12. store.load({    
  13.     params:{    
  14.         start:0,    
  15.         limit:10    
  16.     }    
  17. });    
  18. //第四种     
  19. store.baseParams=params;  




2.Ext.data.JsonStore从后台读取JSON数据

JsonStore=Store+HttpProxy+JsonReader

第一种:Store+HttpProxy+JsonReader

Js代码 
  1. var RecordDef = Ext.data.Record.create([  
  2.        {name: 'id', mapping: 'id'},     // "mapping" property not needed if it's the same as "name"  
  3.        {name: 'name'},                // This field will use "occupation" as the mapping.  
  4.    ]);            
  5.           
  6. var dsabc= new Ext.data.Store({  
  7.          proxy: new Ext.data.HttpProxy({url: '...do',method:'GET'}),  
  8.          reader: new Ext.data.JsonReader({totalProperty: "accountid",id:"id"}, RecordDef)  
  9.     });               
  10.     dsabc.load();

第二种:JsonStore

Html代码 
  1. <%@ page language="java" pageEncoding="UTF-8"%>    
  2.     
  3. <%       
  4.     request.setCharacterEncoding("UTF-8");    
  5.     response.setCharacterEncoding("UTF-8");    
  6.     String json = "{root:["+    
  7.         "{name:'tom', age:18},"+    
  8.         "{name:'cat',age:25}"    
  9.     +"]}";    
  10.     System.out.print(json);    
  11.     response.getWriter().write(json);    
  12. %>   

Js代码 
  1. var store = new Ext.data.JsonStore({    
  2.     url : 'list.jsp',    
  3.     root : 'root',    
  4.     fields : [    
  5.         {name : 'name',type : 'string'},    
  6.         {name : 'age',type : 'int'}    
  7.     ]    
  8. });    
  9. store.load();  

说明:JSONSTORE时EXTJS对store的进一步封装,旨在对json数据格式的数据能够快速的读取。

首先,jsonstore需要一个url,用于对远程数据的读取,如果读取的是本地的数据,可用data进行编辑。

root属性用于读取json数据中的root数据,totalproperty用户读取json数据中的对应字段。

用fields属性指定需要显示的字段标示。

注意:如果用的是editgrid,就需要设置dataindex属性与fields字段进行对应,否则数据将显示不出(想当年,想了N长时间才发现的。。。)




3.Ext.data.SimpleStore()读取本地数组

SimpleStore=Store+MemoryProxy+ArrayReader


第一种:Store+MemoryProxy+ArrayReader

Js代码 
  1. var store = new Ext.data.Store({    
  2.     /*  
  3.         proxy的作用是通过内存获取原始数据,然后将获取的数据交给对应的读取器进行处理  
  4.         MemoryProxy只能从Javascirp对象获取数据,可以直接把数组或者JSON和XML格式的数据交给他处理  
  5.     */    
  6.     proxy : new Ext.data.MemoryProxy([    
  7.         ['tom',18],    
  8.         ['cat',20]    
  9.     ]),    
  10.     //用于将原始数据转换成record实例     
  11.     reader : new Ext.data.ArrayReader({    
  12.         fields : [      
  13.            {name : 'name',type : 'string'},        
  14.            {name : 'age',type : 'int'}       
  15.         ]      
  16.    })     
  17. });    
  18. store.load();    


第二种:SimpleStore

Js代码 
  1. var store = new Ext.data.SimpleStore({    
  2.     data : [    
  3.         ['tom',18],    
  4.         ['cat',25]    
  5.     ],    
  6.     fields : [    
  7.         {name : 'name',type : 'string'},    
  8.         {name : 'age',type : 'int'}    
  9.     ]    
  10. }); 
说明:SimpleStore是专为简化读取本地数组而设计的,设置上MemoryProxy需要的dataArrayReader需要的fields就可以使用了。

在以后的时间里将继续介绍其它的数据存储对象。
  评论这张
 
阅读(1263)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016