EXTJS中创建数据与读取数据

EXTJS中的数据格式是Class Ext.data.Record

创建自己的数据类型:

一般都是通过调用Record的create方法进行创建数据,比如:

var MyRecord = Ext.data.Record.create([
{name: 'title'},
{name: 'username', mapping: 'author'},
{name: 'loginTimes', type: 'int'}
]); 

也可以是:
var MyRecord = Ext.data.Record.create([
{name: 'title', mapping:1},
{name: 'username', mapping:2},
{name: 'loginTimes', type:3}
]);
你会发现这里的mapping不一致,其他的是一样的,这里就要讲下读取数据的问题了。
创建数据类型和读取数据是对应的,这里的mapping就是真实数据和自己创建的数据类型的对应关系。
读取数据有下面几种方式:
ArrayReader        JsonReader           XmlReader

ArrayReader :
这是数组类型的数据
数据形式如下:
[ [1, '测试', '小王',3], [2, '新年好', 'williamraym',13] ]
我们要定义这样的数据类型
var MyRecord = Ext.data.Record.create([
{name: 'title', mapping:1},
{name: 'username', mapping:2},
{name: 'loginTimes', type:3}
]);
这里的mapping即对应的数组中的下标,当然数组的下表是从0开始的。

数据类型定义好了,就要读取数据:
var myReader = new Ext.data.ArrayReader({
id: 0
}, MyRecord);
注意,这里的id:0说明真实数据第0列是对应id。第一列对应我们定义的类型中的title,以此类推。

JsonReader
JSON数据:
{ 'results': 2, 'rows': [
{ id: 1, title: '测试', author: '小王', loginTimes: 3 },
{ id: 2, title: 'Ben', author: 'williamraym', loginTimes:13} ]
}
我们要定义自己的数据类型:
var MyRecord = Ext.data.Record.create([
{name: 'title'},
{name: 'username', mapping: 'author'},
{name: 'loginTimes', type: 'int'}
]);
这里看出来了吧,name属性对应的是我们自己的数据列的名字,mapping对应的是真实数据的数据列名,如果两者相同,mapping可以省略。

XmlReader

这个和JSON很相似,基本一样
先看下原始数据:
<topics>
<results>2</results>
<row>
<id>1</id>
<title> 测试 </ title >
<author> 小王 </ author >
<loginTimes>3</ loginTimes >
</row>
<row>
<id>2</id>
<title> 新年好 </ title >
<author> williamraym </ author >
<loginTimes>13</ loginTimes >
</row>
</topics>


我们定义自己的数据类型:
var MyRecord = Ext.data.Record.create([
{name: 'title'},
{name: 'username', mapping: 'author'},
{name: 'loginTimes', type: 'int'}
]);

然后是读取数据:
var myReader = new Ext.data.XmlReader({
totalRecords: "results",
record: "rows",
id: "id"
}, MyRecord);

这里也是一一对应的关系。

以上是自己的一些看法,也从网上摘抄了些,有不对的地方希望大家指出来,一起学习。

 

 

-------------踏着落叶,追寻着我的梦想














posted on 2009-11-17 23:19  寂寞的肥肉  阅读(3957)  评论(2编辑  收藏  举报

导航