Extjs-动态拼装Store

来源:互联网 发布:原生js创建节点对象 编辑:程序博客网 时间:2024/04/29 09:40

动态拼装ArrayStore
1:定义Store

    var result = [];//数据    var fieldStr = [];//列名    var store = Ext.create('Ext.data.ArrayStore', {                fields : fieldStr,                data : result            });

2:在function()中拼接data和field

function getData() {result = [];fieldStr = [];var fp = queryForm;        var queryParam = {};        var date = fp.getForm().getValues()["date"];        queryParam["date"] = date;        var n = fp.getForm().getValues()["n"];        queryParam["n"] = n;        Ext.Ajax.request({            url : WebPath + '/baobiao/findDuoKai',            params : queryParam,            method : "POST",            success : function(response) {                // 转换数据反回值为对象                var datas = Ext.decode(response.responseText);                // 获取 开始日期 和 结束日期                var begin = CTU.Utils.parseDate(queryParam['date'][0]);                var end = CTU.Utils.parseDate(queryParam['date'][1]);fieldStr.push('name');for (var i = begin; i <= end; i = i + 3600000 * 24) {fieldStr.push(Ext.Date.format(new Date(i), 'Y-m-d'));}// 转换数据反回值为对象var names = [];                Ext.Array.each(datas["rows"], function(item, b) {                            var find = 0;                            for (var k = 0; k < names.length; k++) {                                if (names[k] == item['name']) {                                    find = 1;                                }                            }                            if (find == 0) {                                names.push(item['name']);                            }                        });Ext.Array.each(names, function(name, b) {                            var result_obj = [];                            result_obj.push(name);                            for (var i = begin; i <= end; i = i + 3600000 * 24) {                                var isFind = 0;                                Ext.Array.each(datas["rows"],                                        function(item, b) {                                            if (name == item['name']                                                    && i == CTU.Utils                                                            .parseDate(item['date'])) {                                                result_obj.push(item['count']);                                                isFind = 1;                                            }                                        });                                if (isFind == 0) {                                    result_obj.push(0);                                }                            }                            result.push(result_obj);                        });                store = Ext.create('Ext.data.ArrayStore', {                            fields : fieldStr,                            data : result                        });                store.removeAll();                store.loadData(result);            }        });    }   

Extjs中创建Store数据源的方式
1.数组格式的数据:data只能是数组!——不能用JsonStore,否则报错!

var arrStore = new Ext.data.SimpleStore({    data:[        /*{id:1,name:"zs",age:22},        {id:2,name:"ls",age:23},        {id:3,name:"ww",age:24}*/注释掉的是json格式的,只能用JsonStore        [1,"zs",22],        [2,"ls",23],        [3,"ww",24]    ],    fields:["id","name","age"]});

2.JSON格式的数据:data只能是json!——不能用SimpleStore,也不能用父类Store,否则报错!

var jsonStore = new Ext.data.JsonStore({    data:[        {id:1,name:"zs",age:22},        {id:2,name:"ls",age:23},        {id:3,name:"ww",age:24}    ],    fields:["id","name","age"]});

注意事项:
1.文本框赋值方式:
1
getForm().findField(“”).setValue(“”)
2.在Store中取record:
(1).取总记录records:store.data (注,此时若要取某下标记录,还得用records.get(i))
(2).取指定下标的record:store.getAt(i) (注:不是get(i)或者getById(i))
2.在record中取值方式:
(1).record.data.name
(2).record.data[“name”]
(3).record.get(“name”) (注意:这里比前两种少了data)
分析:record是一个数组,所以取值要用get,而record.data已经是一个对象了,所以可以直接用“.”
详情请参照:http://blog.csdn.net/liu78778/article/details/3942990

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 自来水往外喷水怎么办 手机有骚扰电话怎么办 半夜到南宁机场怎么办 得了水痘坐火车怎么办 香港账户被限制怎么办 司法拍卖车扣分怎么办 速递易已超期怎么办 e栈快递换微信怎么办 e栈快递柜打不开怎么办 小孩耳朵塞东西怎么办 把隐形眼镜吃了怎么办 街道分车位不公平怎么办 服务区修车被宰怎么办 2018高速逃费怎么办 高速不停车卡怎么办 独立显卡显存不够怎么办 rx470d买不到了怎么办? 南方避险基金到期怎么办 高铁票认证失败怎么办 高铁票三个小孩怎么办 12306取消三次后怎么办 外国人护照过期了怎么办 行李丢飞机上怎么办 学生票没次数了怎么办 去美国行李超重怎么办 12306密码找回失败怎么办 12306注册身份重复怎么办 12306身份信息重复怎么办 必修课没有选上怎么办 大学错过了选课怎么办 大学忘记选课了怎么办 火车网上购票儿童票怎么办 售票厅看见小偷怎么办 没赶上火车火车票怎么办 重庆到韩国签证怎么办 重庆去韩国签证怎么办 重庆办韩国签证怎么办 故宫网上预定后怎么办 坐游轮如果晕船怎么办 听听力反应慢怎么办? 毕业证照片丢了怎么办