這裏我們以 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);