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

代码举例:

Ext.onReady(function(){
//定义了一个person的model
//     Ext.define("person",{
//       extend:"Ext.data.Model",
//       fields:[
//        {name:"name"},
//        {name:"age"}
//       ]
//     });
//创建了一个store数据集
     var s=new Ext.data.Store({
        //store可以自己定义fields,省略model
        fields:[
          {name:"name"},
          {name:"age"}
        ],
 //如果使用了代理以后,就可以省略store的data属性了
        proxy:{
           type:"ajax",
           url:"person.jsp"
        }
//        data:[
//        {name:"hanhan313",age:23},
//        {name:"hanhan313",age:22}
//         ],
         //model:"person"
         //autoLoad:true
     });
//     s.each(function(model){
//       //Ext.Msg.alert("title",model.get("name"));
//     alert(model.get("name"));
//     });
     //除了自动加载,也可以手动加载,如果使用了代理的话应该使用手动加载,因为使用自动加载的话,在遍历的使用数据还在异步加载,没有获取到
     s.load(function(records,operation, success) {
         Ext.Array.each(records,function(model){
            alert(model.get("name"));
         });
     });
});

person.jsp页面:

 json格式的数据:

<%

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

%>

ExtJs中 Store
您的回应...

相关话题

查看全部

也许你感兴趣

换一批

热门标签

更多