分享

ExtJs4.1用store装载本地的数据以及装载服务端的数据

 旭龙 2013-03-27
//下面是用来装载本地的数据(就是自定义的数据)
Ext.onReady(function () {
            Ext.regModel("user", {
                fields: [{ name: "name", type: "string" }, { name: "age", type: "int"}]
            });
            var data = [{ name: "likeshan1", age: 1 }, { name: "likeshan2", age: 2}];

            var store = Ext.create("Ext.data.Store", {
                model: "user",
                data: data,
                autoLoad: true //这个默认的是false,要制定其为true
            });

            store.each(function (model) {
                alert(model.get("name"));
            }, this);
        });
//当然我们也可以不适用model,而直接在store里面定以fields,如下所示
        Ext.onReady(function () {
            Ext.define("user", {
                extend: "Ext.data.Model",
                fields: [{ name: "name", type: "string" }, { name: "age", type: "int"}]
            });

            var data = [{ name: "liudehua", age: 20 }, { name: "zhangxueyou", age: 25}];
            var store = new Ext.data.Store({
                fields: [{ name: "name", type: "string" }, { name: "age", type: "int"}], //这个是用来代替model,在这里定义了这个fields之后,就会自动创建一个匿名的model来使用的
                data: data,
                autoLoad: true
            });

            store.each(function (model) {
                alert(model.get("name"));
            }, this);
        });
//从服务端加载数据
 Ext.onReady(function () {
            Ext.define("user", {
                extend: "Ext.data.Model",
                fields: [{ name: "username", type: "string" }, { name: "age", type: "int"}]
            });
            var store = Ext.create("Ext.data.Store", {
                model: "user",
                proxy: {
                    type: "ajax",
                    url: "test2.aspx", //Response.Write("[{username:'likeshan',age:20},{username:'liudehua',age:50}]");
                    reader: {
                        type: "json"
                    }
                }//,
                //autoLoad:true//在使用ajax的时候最好不要使用自动加载,因为我们有的时候需要自己手动加载,这样就可以真正地操作我们需要的数据,否则会加载两次
            });
            store.load(function (records, operation, success) {//注意这里的records是指从服务端下载过来的对象数组,并不是针对存入store中的model类型进行操作
                //                records.each(function (model) {//因此这样是无法取到数据的
                //                    alert(model.get("name"));
                //                });
                //                Ext.Array.each(records, function (item) {//单个的item是一个model
                //                    alert(item.get("username"));
                //                });
                store.filter("username", "liudehua"); //liudehua过滤出来
                sto

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约