一般需要添加一组数据,引入一个概念Ext.data.Reader,这里的Reader功能非常单一,只是用来 解析数据的到,EXTJS支持不同的数据格式,也就需要不同的数据解析器。而这个Reader就是承担解析器的作用。
1、数组形式数据解析(特殊的JSON形式数据,因此,ArrayReader是JsonReader的子类)
var _store = new Ext.data.Store({
data:[["陈治文" , "男"] , ["张妍娜" , "女"]],
reader:new Ext.data.ArrayReader({
},Ext.data.Record.create(["name" , "sex"]))
}) ;
解析器为ArrayReader,分别解析["陈治文" , "男"] 和["张妍娜" , "女"],将其转换成Ext.data.Record。
2、JSON形式数据
var _store = new Ext.data.Store({
data:[{name:"陈治文" , sex:"男"} , {name:"张妍娜" , sex:"女"}],
reader:new Ext.data.JsonReader({
} , Ext.data.Record.create(["name" , "sex"]))
}) ;
alert(_store.getCount()) ;
JsonReader分别解析{name:"陈治文" , sex:"男"}和{name:"张妍娜" , sex:"女"},将这些数据解析成Ext.data.Record类型数据
3、XML形式数据
这里的有个地方比较麻烦,首先,我们必须得构建一个XMLDocument,这样才能形成XML数据,我们这里所讲的是ASPServer的XML组织形式
var _xml = new XML("<table><row><name>陈治文</name><sex> 男</sex></row><row><name>张妍娜< /name><sex>女</sex></row></table>") ;
这样,就是构建一个XML对象,通过_xml.getValue()得到xmldocument原型
再者,我们还有需要引入一个新型概念——数据代理Ext.data.DataProxy,数据代理的作用就是通过一定的方式来获得数据,目前 EXTJS提供三种方式获得数据:内存传入、HTTP传入、跨域传入。我这里所讲是内存传入Ext.data.MemoryProxy
var _store = new Ext.data.Store({
proxy:new Ext.data.MemoryProxy(_xml.getValue()) ,
reader:new Ext.data.XmlReader({
record:"row"
},Ext.data.Record.create(["name" , "sex"]))
}) ;
_store.on("load" , function(_store){
alert(_store.getAt(0).getCount()) ;
}) ;
_store.load() ;
摘自:陈治文,非本人原创