这里我们以 JSONStore 为例来说明,xml 或文本格式类似。
在 Ext 里面,通常用 Store 来保存提取的数据。
创建 Store
var store = new Ext.data.JsonStore({
url: 'xmfl.txt', //
采用相对路径,亦可用php.jsp,action等可返回数据的地址
root: 'rows', //json根,如{rows:[{'typeId':1,'typeName':'体育用品'},{}....]}
//
这项创建record
,便于reader
使用,如果record的字段名和返回的json数组对应的名字相同,则可以不用设置,如果不同
//可以进行名字、返回数据对应名字的设置,用{}
括起来,mapping的值也可以用序号 1,2,3...来代替
fields: ['typeId',{'typeName',mapping:'typeName'}]
});
注:必须把相应文件部署在服务器上,通过http方式访问才行,js不能直接访问本地txt文件
创建
store
后,需要对数据进行加载,调用
load
方法
store.load({callback:function(r,opt,success){
//r 返回的 data.Record[] ,即按上面的 fields 解析后的 json 数组
//opt 配置对象
//success 是否成功
}})
callback 是加载数据后要执行的回调函数,针对数据处理最好放在这个回调函数里,也可以定义一个函数,把 r 传过去处理,如 callback:function(r,o,s){myfunction(r);}
剩下的工作就是对 Record 数组的处理了
var le = r.length;
for(var i=0;i<le;i++){
alert(r[i].get(‘name’)); //alert 第 i 条记录的 name 属性
}
取值后的 store ,获取记录数 为 store.getCount();
获取第 i 条记录为 store.getAt(i);