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([你会发现这里的mapping不一致,其他的是一样的,这里就要讲下读取数据的问题了。
{name: 'title', mapping:1},
{name: 'username', mapping:2},
{name: 'loginTimes', type:3}
]);
创建数据类型和读取数据是对应的,这里的mapping就是真实数据和自己创建的数据类型的对应关系。
读取数据有下面几种方式:
ArrayReader JsonReader XmlReaderArrayReader :这是数组类型的数据
数据形式如下:[ [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说明真实数据第0列是对应id。第一列对应我们定义的类型中的title,以此类推。
id: 0
}, MyRecord);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);
这里也是一一对应的关系。
以上是自己的一些看法,也从网上摘抄了些,有不对的地方希望大家指出来,一起学习。