转自:http://www.javaeye.com/post/437044
Ext控件如何取得数据?
首先我需要知道如何取到数据,于是定义
Ext.data.HttpProxy 其中的URL属性或者指向1个本地文件,或者是发送一个网络请求
OK中途传输一切顺利,于是我得到一个数据的集合,我如何从这个集合中把数据取出来,按照
我定义的格式来安排数据,接下来定义
Ext.data.JsonReader(如果取到的数据是JSON格式的字符串),或者其他,假设是JSON字串
API文档里有段定义
var myReader = new Ext.data.JsonReader({
totalProperty: "results", // The property which contains the total dataset size (optional)
root: "rows", // The property which contains an Array of row objects
id: "id" // The property within each row object that provides an ID for the record (optional)
}, Employee);
一切顺利,现在我能够让Ext认识服务器返回的JSON字串,那么我现在需要的是一个格式化后的cache,把
读到的字串一项项的放入其中,这样控件可以从这个cache里读取数据并且显示,注意jsonreader第2项参数
Employee这个API有定义
var Employee = Ext.data.Record.create([
{name: 'name', mapping: 'name'}, // "mapping" property not needed if it's the same as "name"
{name: 'occupation'} // This field will use "occupation" as the mapping.
]);
上面的代码做了什么?定义了格式化的cache,于是一项项的数据通过jsonreader,按record的格式放入
其中,注意mapping定义了原始数据和格式化后数据的影射关系,好了把上面的数据请求,读取方法和放数据的
cache包装在一起就成了Ext.data.Store定义的东西.