`

Ext.data.xxxStore 数据解析的简单运用

阅读更多

 

做任何的应用程序都少不了对数据的操作。在Extjs里面对数据的解析主要由是Ext.data.Store来做。今天接触了Ext.data.ArrayStore Ext.data.JsonStore. 从命名上就知道它们所解析的格式是不同的。所以当我们需要哪种格式来填充我们的组件的时候,我们可以让设计后台传过来的格式,符合我们解析就格式就OK了。看下API中的例子便可一目了然。

Code:
  1. 一个store配置项看起来如下:
  2. varstore=newExt.data.JsonStore({
  3. //storeconfigs
  4. autoDestroy:true,
  5. url:'get-images.php',
  6. storeId:'myStore',
  7. //readerconfigs
  8. root:'images',
  9. idProperty:'name',
  10. fields:['name','url',{name:'size',type:'float'},{name:'lastmod',type:'date'}]
  11. });
  12. 此store被配置用来解析如下的格式的对象:
  13. {
  14. images:[
  15. {name:'Imageone',url:'/GetImage.php?id=1',size:46.5,lastmod:newDate(2007,10,29)},
  16. {name:'ImageTwo',url:'/GetImage.php?id=2',size:43.2,lastmod:newDate(2007,10,30)}
  17. ]
  18. }
  19. 一个符合此格式的字符串也可以用作data配置项。
Code:
  1. Store的配置就像如下代码所示:
  2. varstore=newExt.data.ArrayStore({
  3. //storeconfigs
  4. autoDestroy:true,
  5. storeId:'myStore',
  6. //readerconfigs
  7. idIndex:0,
  8. fields:[
  9. 'company',
  10. {name:'price',type:'float'},
  11. {name:'change',type:'float'},
  12. {name:'pctChange',type:'float'},
  13. {name:'lastChange',type:'date',dateFormat:'n/jh:ia'}
  14. ]
  15. });
  16. 此Store被配置用来解析如下格式的对象:
  17. varmyData=[
  18. ['3mCo',71.72,0.02,0.03,'9/112:00am'],
  19. ['AlcoaInc',29.01,0.42,1.47,'9/112:00am'],
  20. ['BoeingCo.',75.43,0.53,0.71,'9/112:00am'],
  21. ['Hewlett-PackardCo.',36.53,-0.03,-0.08,'9/112:00am'],
  22. ['Wal-MartStores,Inc.',45.45,0.73,1.63,'9/112:00am']
  23. ];
  24. 一个符合此格式的字符串也可以用作data配置项。

 

很显然,JsonStore解析的是键值对,而ArrayStore解析的是数组。两者完全不同。

 

官网的例子中,大多数在控件渲染时,JsonStore就自动加载从后台传过来的数据填充。而且在JsonStore里面获取数据出来给当前控件渲染时,是获取不出来的。如有以下的需求时:

Code:
  1. var xxxCom=function(params,cfg){ //定义组件xxxCom
  2. xxxCom.apply(this,cfg);
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics