首页 > 代码库 > [转]ExtJs中的Store

[转]ExtJs中的Store

store是一个存储数据对象Model的集合缓存,他可以为extjs的可视化组建提供数据(GridPanel,ComboBox)等

类结构

Ext.data.AbstractStore

       Ext.data.Store  没有特殊情况这个类就可以满日常的开发了

              Ext.data.ArrayStore

              Ext.data.DirectStore

              Ext.data.ArrayStore  内置辅助的类

              Ext.data.JsonStroe   内置辅助的类

       Ext.data.TreeStore

Ext.data.Store使用

       参数

        autoLoad(Boolean/Object) : 自动加载数据,自动调用load

        data(Array) : 内置数据对象的数组,初始化的是就要被装在

        model(Model): 数据集合相关的模型

        fields(Field):字段的集合,程序会自动生成对于的Model

       方法

        each( Function f, [Object scope] ) : void 变量数据中的Model

代码举例:

 

[javascript] view plaincopy
 
  1. Ext.onReady(function(){  
  2. //定义了一个person的model  
  3. //     Ext.define("person",{  
  4. //       extend:"Ext.data.Model",  
  5. //       fields:[  
  6. //        {name:"name"},  
  7. //        {name:"age"}  
  8. //       ]  
  9. //     });  
  10. //创建了一个store数据集  
  11.      var s=new Ext.data.Store({  
  12.         //store可以自己定义fields,省略model  
  13.         fields:[  
  14.           {name:"name"},  
  15.           {name:"age"}  
  16.         ],  
  17.  //如果使用了代理以后,就可以省略store的data属性了  
  18.         proxy:{  
  19.            type:"ajax",  
  20.            url:"person.jsp"  
  21.         }  
  22. //        data:[  
  23. //        {name:"hanhan313",age:23},  
  24. //        {name:"hanhan313",age:22}  
  25. //         ],  
  26.          //model:"person"  
  27.          //autoLoad:true  
  28.      });  
  29. //     s.each(function(model){  
  30. //       //Ext.Msg.alert("title",model.get("name"));  
  31. //     alert(model.get("name"));  
  32. //     });  
  33.      //除了自动加载,也可以手动加载,如果使用了代理的话应该使用手动加载,因为使用自动加载的话,在遍历的使用数据还在异步加载,没有获取到  
  34.      s.load(function(records,operation, success) {  
  35.          Ext.Array.each(records,function(model){  
  36.             alert(model.get("name"));  
  37.          });  
  38.      });  
  39. });  

 

person.jsp页面:

 json格式的数据:

<%

    response.getWriter().write("[{name:‘hanhan313‘,age:26},{name:‘hahaha‘,age:34}]");

%>

[转]ExtJs中的Store