转自:https://blog.csdn.net/chenlaoyang/article/details/8306584
Ext.data.Record就是一个设定了内部数据类型的对象,它是Ext.data.Store的最基本组成部分。如果把Ext.data.Store看作是一张二维表,那么它的每一行就对应一个Ext.data. Record实例。
Ext.data.Record的主要功能是保存数据,并且在内部数据发生改变时记录修改的状态,它还可以保留修改之前的原始值。
我们使用Ext.data.Record时通常都是由create()函数开始,首先用create()函数创建一个自定义的Record类型,如下面的代码所示。
a.
var PersonRecord = Ext.data.Record.create([
{name: 'name', type: 'string'},
{name: 'sex', type: 'int'}
]);
PersonRecord就是我们定义的新类型,包含字符串类型的name和整数类型的sex两个属性,然后我们使用new关键字创建PersonRecord的实例,如下面的代码所示。
var boy = new PersonRecord({
name: 'boy',
sex: 0
});
b.直接传参数
varboy=new Ext.data.Record({
name: 'boy',
sex: 0
});
现在,我们得到了PersonRecord的实例boy,如何才能得到它的属性呢?以下三种方式都可以获得boy中name属性的数据,如下面的代码所示。
alert(boy.data.name);
alert(boy.data['name']);
alert(boy.get('name'));
这里涉及Ext.data.Record的data属性,这是定义在Ext.data.Record中的一个公共属性,用于保存当前record对象的所有数据。它是一个JSON对象,可以直接从它里面获得需要的数据。可以通过Ext.data.Record的get()函数方便地从data属性中获得指定的属性值。
如果我们需要修改boy中的数据,请不要使用以下方式直接操作data,如下面的代码所示。
boy.data.name = 'boy name';
boy.data['name'] = 'boy name';
而应该使用set()函数,如下面的代码所示。
boy.set('name', 'body name');
set()函数会判断属性值是否发生了改变,如果改变了,就要将当前对象的dirty属性设置为true,并将修改之前的原始值放入modified对象中,供其他函数使用。如果直接操作data中的值,record就无法记录属性数据的修改情况。
得到record类型:
var Plant = grid.getStore().recordType;www.2cto.com
var p = new Plant({empno:dno,ename:dme,hiredate:l});