加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ext之store---extjs中创建或得到Record和Store的几种方法

(2012-03-11 15:17:40)
标签:

杂谈

分类: JAVA技术
Extjs中创建或得到record和store的几种方法代码  
  1. Ext.data.Store Ext.data.Record XmlReader SimpleStore  
  2.   
  3.   
  4. 1// create 最基本建立Record和Store的方法  
  5. var myStore new Ext.data.Store();  
  6. var TopicRecord Ext.data.Record.create([  
  7.         {name: 'title'mapping: 'topic_title'},  
  8.         {name: 'author'mapping: 'username'},  
  9.         {name: 'totalPosts'mapping: 'topic_replies'type: 'int'},  
  10.         {name: 'lastPost'mapping: 'post_time'type: 'date'},  
  11.         {name: 'lastPoster'mapping: 'user2'},  
  12.         {name: 'excerpt'mapping: 'post_text' 
  13. ]); // 列表影射,columnModel  
  14. var myNewRecord new TopicRecord({  
  15.         title: 'Do my job please' 
  16.         author: 'noobie' 
  17.         totalPosts: 1 
  18.         lastPost: new Date(),  
  19.         lastPoster: 'Animal' 
  20.         excerpt: 'No way dude!'  
  21. }); // 实际的一条记录  
  22. myStore.add(myNewRecord);  
  23.   
  24. 2// 这种方法也可以构建一个store  
  25. var store new Ext.data.SimpleStore({  
  26.         fields: ['abbr''state''nick'], // 一定要有这个,如果放在grid中,与column的dataIndex属性值对应  
  27.         data  
  28.         ['AL''Alabama''The Heart of Dixie'],  
  29.         ['AK''Alaska''The Land of the Midnight Sun'],  
  30.         ['IN''Indiana''The Hospitality State' 
  31.          
  32. });  
  33.   
  34. 3还有一个种方法,用ArrayReader,数据源是js二维数组,用SimpleStore  
  35. var store new Ext.data.SimpleStore({  
  36.           
  37.         fields: ['pid''company''price''change''pctChange''lastChange'],  
  38.         url: 't2.php' 
  39.         reader: new Ext.data.ArrayReader(  
  40.                 {id: 0},  
  41.                   
  42.                 [{name:'company',mapping: 1}, {name:'price',mapping: 2}, {name:'change',mapping: 3}, {name:'pctChange',mapping: 4}, {name:'lastChange',mapping: 5}]  
  43.                  
  44. });  
  45. // 因为使用url会触发ajax, 是异步方式,如果是要ajax读取数据后马上触发事件,  
  46. // 必须添加load事件的监听  
  47. store.addListener('load'function(st, rds, opts)  
  48.         // st 是当前的store, rds是读到的Record[], opts是store的配置  
  49.         //alert(rds.getTotalCount());  
  50.         nextstore.removeAll(); //先清除另一个store的内容  
  51.         nextstore.add(rds); // 给另一个store添加这些records  
  52.         //for( var c=0c<rds.length; c++ store.addSorted(rds[c]);  
  53. });  
  54. store.load();  
  55.   
  56. 4还有一个种方法,用XmlReader,数据源是xml, 只能用Ext.data.Store,不能用SimpleStore  
  57. 就因为SimpleStore,害我搞了n久才发现只能用Store  
  58. 先看数据源:  
  59. <?xml?>  
  60. <dataset>  
  61.  <results>2</results>  
  62.  <row>  
  63.    <id>1</id>  
  64.    <name>Bill</name>  
  65.    <occupation>Gardener</occupation>  
  66.  </row>  
  67.  <row>  
  68.    <id>2</id>  
  69.    <name>Ben</name>  
  70.    <occupation>Horticulturalist</occupation>  
  71.  </row>  
  72. </dataset>  
  73. js:  
  74. var store new Ext.data.Store({  
  75.         fields: ['id''name''occupation'],  
  76.         url: 't2.php' 
  77.         reader: new Ext.data.XmlReader(  
  78.                  
  79.                 record: "row"// xml中每行数据的内容  
  80.                 totalRecords: "results"// xml中的results节点,表时记录数 (option)  
  81.                 id: 'id'  
  82.                 // 每行数据的素引,xml中是row标签的子节点, 作recordid, (option),   
  83.                 // 如果id列在数据源中的值有重复,就只会显前面的列,后面的放弃.  
  84.                 },  
  85.                   
  86.                 [{name:'name',mapping: 'name'}, {name:'occupation' 
  87.                 // 这里也可写成 ['id''name''occupation' 
  88.          
  89. });  
  90. // 因为使用url会触发ajax, 是异步方式,如果是要ajax读取数据后马上触发事件,  
  91. // 必须添加load事件的监听  
  92. store.addListener('load'function(st, rds, opts)  
  93.         // st 是当前的store, rds是读到的Record[], opts是store的配置  
  94.         //alert(rds.getTotalCount());  
  95.         nextstore.removeAll(); //先清除另一个store的内容  
  96.         nextstore.add(rds); // 给另一个store添加这些records  
  97.         //for( var c=0c<rds.length; c++ store.addSorted(rds[c]);  
  98. });  
  99. store.load();  
  100.  


原文地址:http://doggou.iteye.com/blog/379101


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有