数据集的Store

来源:互联网 发布:火狐量子浏览器 知乎 编辑:程序博客网 时间:2024/05/22 18:59


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

 

1、创建model数据模型

       Ext.define("person",{

              extend:"Ext.data.Model",

              fields:[

                     {name:"name"},

                     {name:"age"}

              ],

              proxy:{

                     type:"memory"

              }

       });

2、创建store

       data:指定的是一个数组的对象数组,为这个数据集来赋值

       model:指定的是数据模型

       autoLoad设置自动加载,默认为false

       fields:store本身也可以当作一个数据模型用fields字段来指定模型属性

       proxy:指定的代理机制,这时store不能指定data字段,data比proxy优先级高,使用proxy这个不能指定,否则代理不会执行

       使用代理机制来赋值,应该用load来加载,不能自动加载,因为程序不会等到请求后才执行下一条记录

      

       vars=new Ext.data.Store({

                     fields:[

                            {name:"name"},

                            {name:"age"}

                     ],

                     //data:[          //data指定的数据  data比proxy优先级高,使用proxy这个不能指定,否则代理不会执行

                     //     {name:"marico",age:21},

                     //     {name:"zhang",age:21}

                     //],

                     model:"person",

                     proxy:{        //使用代理机制来赋值,使用应该用load来加载,不能自动加载,因为程序不会等到请求后才执行下一条记录

                           

                            type:"ajax",

                            url:"person.jsp"

                     }//,

                     //autoLoad:true   //设置自动加载  默认为false

              });

3、遍历数据集store里面的数据和方法使用

       filter方法:过滤的方法,第一个参数指定属性名,第二个参数指定的是值

       find方法:根据一定的条件来查找数据  返回的是查找到指定的对象的坐标,如果没有找到返回-1

       参数:第一个指定的属性名

       第二个:指定的是值,也可以用正则表达式   点应需要在前面加\转义。

       第三个:指定的是从第几个开始查找

       第四个:是否全部查找

       第五个:是否区分大小写

       第六个:是否完全匹配?

       getName方法 获取类的名字  先调用自身的Class属性再调用getName方法, 相当于java中的反射机制

       //s.each(function(model){

       //     alert(model.get("name"));

       //});

    如果使用代理机制,则需要load把data字段取消和autoLoad字段取消

       s.load(function(records,operation,success){

              Ext.Array.each(records,function(model){

                     //alert(model.get("name"));

              });

              //过滤

              //s.filter("name","marico");

              s.each(function(model){

                     alert(model.get("name"));

              });

              varindex=s.find('name','marico',0,false,true,false);

              alert(index);

              alert(s.Class.getName());

       });

      

       

原创粉丝点击