`
siser344
  • 浏览: 21700 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Ext Record

    博客分类:
  • ext
阅读更多
[color=darkred][/color]Ext.data.Record(2009-03-03 14:42:59)转载标签:杂谈 分类:Ext

Ext.data.Record是一个设定了内部数据类型的对象.用面向对象来讲,它就是一个类Class、或结构Struct.

eg:

Ext:

var Ext_record=Ext.data.Record.create({

  {name:'name',type:'string'},

  {name:'sex',type:'int'}

});

asp.net:                      

class ASP_record{           

  string name;

  int sex;

}

然后我们用new创建他们的实例。

Ext:

var Ext_record_s=new Ext_record({name:'body',sex:0});

asp.net:

ASP_record ASP_record_s=new ASP_record();

ASP_record_s.name="body";ASP_record_s.sex=0;



如果把Ext.data.Store看作是一张二维表,那么它的每一行就对应一个Ext.data. Record实例。

Ext.data.Record的主要功能是保存数据,并且在内部数据发生改变时记录修改的状态,它还可以保留修改之前的原始值。

以下三种方式都可以获得Ext_record_s中name属性的数据,如下面的代码所示。

alert(Ext_record_s.data.name);

alert(Ext_record_s.data['name']);

alert(Ext_record_s.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的属性数据被修改后,我们可以执行如下几种操作。

l    commit()(提交):这个函数的效果是设置dirty为false,并删除modified中保存的原始数据。

l    reject()(撤销):这个函数的效果是将data中已经修改了的属性值都恢复成modified中保存的原始数据,然后设置dirty为false,并删除保存原始数据的modified对象。

l    getChanges()获得修改的部分:这个函数会把data中经过修改的属性和数据放在一个JSON对象里并返回。例如上例中,getChanges()返回的结果是{name:’body name’}。

l    我们还可以调用isModified()判断当前record中的数据是否被修改。

     Ext.data.Record还提供了用于复制record实例的函数copy()。

  var copyBoy = Ext_record_s.copy();

这样我们就得到了Ext_record_s的一个副本,它里面包含了Ext_record_s的data数据,但copy()函数不会复制dirty和modified等额外的属性值。

Ext.data.Record中其他的参数大多与Ext.data.Store有关,请参考与Ext.data.Store相关的讨论。
分享到:
评论
1 楼 happenZheng 2011-04-07  
假如,我多了三个字段:birthday(date),isStudent(boolean),money(float),此时,这个record应该怎么定义????
楼主说的,网上一大堆,就是两个字段,
var Ext_record=Ext.data.Record.create({

  {name:'name',type:'string'},

  {name:'sex',type:'int'}

});
    可以再加多几个字段吗???

相关推荐

    Ext对基本类型的扩展 ext,extjs,format

    Ext对基本类型的扩展 ext,extjs,format,学习extjs的朋友可以参考下。

    EXT核心API详解

    25、Ext.Ajax类 ………………………… 22 26、Ext.data.Record类 ………………… 23 27、Ext.data.DataProxy类 …………… 24 28、Ext.data.HttpProxy类 …………… 24 29、Ext.data.MemoryProxy类 ……… 25 30、...

    Ext.ux.UploadDialog

    Most configuration options are inherited from Ext.Window (see ExtJs docs). The added ones are: url - the url where to post uploaded files. base_params - additional post params (default to {}). ...

    Ext数据模型Store

    Ext数据模型Store DataProxy Record DataReader

    Ext.DataView 图片列表显示

    var reader = new Ext.data.JsonReader({totalProperty:'totalProperty',root:'root'},record); store = new Ext.data.Store({ proxy:proxy, reader:reader }); //尾 分页 var pagebar = new Ext....

    EXT中文开发手册

    中文API文档 数据存储与传输 Ext.data简介 Ext.data.Connection Ext.data.Record Ext.data.Store 基本应用 对数据进行排序 从store中获取数据 更新store中的数据

    Ext+JS高级程序设计.rar

    7.3 Ext.data.Record 198 7.4 ArrayReader、JsonReader和XmlReader 199 7.4.1 JsonReader 200 7.4.2 ArrayReader 200 7.4.3 XmlReader 201 7.5 Store的加载数据 201 7.6 Store的数据操作 203 7.6.1 添加数据 203 ...

    Ext JS 删除的代码

    var system_add_rent = new Ext.Toolbar({ border : false, items : [{ text : "添加月租金", iconCls : "add10", listeners : { click : function() { add_rent.show(); } ...

    ExtJS Store的数据访问与更新问题

    可以使用add(Ext.data.Record[] records)或者add(Ext.data.Record record)向store末尾添加一个或多个record。如: 代码如下: var newRecord=new PersonRecord({name:”Tom”,age:22}); store.add(newRecord); add...

    extjs4 record mapping参数解释

    extjs4 record mapping参数解释

    ext js解析xml文档

    Extjs解析xml问题 Ext.onReady(function(){    var store=new Ext.data.Store({   url:'GridData.xml', ... {record:'Item'},   ["ASIN","Author","Manufacturer","ProductGroup","Title"])  });

    Ext深入浅出 数据传输

    10.3 Ext.data.Record .............................232 10.4 Ext.data.Store ...............................233 10.4.1 基本应用...................................233 10.4.2 对数据进行排序...................

    精通JS脚本之ExtJS框架.part1.rar

    6.4.4 Ext.query与Ext.select 6.5 应用模板 6.5.1 Ext.Template 6.5.2 Ext.XTemplate 第7章 设计表单类布局 7.1 Form表单简介 7.1.1 Form表单的基本配置 7.1.2 ExtJS对Form表单的封装 7.2 ExtJS的表单组件 ...

    ExtJS入门教程(超级详细)

    25、Ext.Ajax类 ………………………… 22 26、Ext.data.Record类 ………………… 23 27、Ext.data.DataProxy类 …………… 24 28、Ext.data.HttpProxy类 …………… 24 29、Ext.data.MemoryProxy类 ……… 25 30、...

    ExtJs4.1 treegrid CRUD 读取、新增、修改、删除

    Ext.Array.each(records,function(record){ record.updateInfo(); record.commit(); }); } //刷新tree指定的的节点 store.load({node:node}); //异步Ajax提交新增数据 insertdb:function(newrecords) //异步Ajax...

    按查询条件过滤行.txt

    ext grid列表中,通过查询条件隐藏指定的行数据,或者删除它,附件是主要代码,仅供参考,代码片段: arSoftwareRequireStore.each(function(record, index) { //get的名字要与Store绑定的Model的名字是一样的 // ...

    ExtJs+Dwr带分页分组传参后台排序功能的grid

    Service类(RecordServiceImpl),Service接口(RecordService),分页类(ListRange.java),dwr自带(engine.js),ext自带(ext-all.js,ext-base.js,ext-all.css),(分页底部工具栏)PagingToolbar.js

    ext读取两种结构的xml的代码

    <?xml version=”1.0″ encoding=”utf-8″ ?> <list> <software> 软件1</name> <icon>1.gif</icon> </software> <software> 控件2</name> <icon>2.gif</icon> ... reader=new Ext.data.XmlReader({ record: ‘s

    ExtJs 实现动态加载grid完整示例

    Ext3.3完整包 Ext3.3中文文档 数据表的结构是:数据表table > 记录record > 字段 store的结构是: Ext.data.Store > Ext.data.Record>Ext.dataDataField store 首先驱动 DataProxy 加载数据 ,DataProxy加载完成会...

    tree with tab

    var westPanel = Ext.create('Ext.tree.Panel', { title : '菜单', region : 'west', margins : '0 5 0 0', width : 200, store : store1, rootVisible : false, listeners : { ...

Global site tag (gtag.js) - Google Analytics