`
objectbean
  • 浏览: 15075 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

3.Ext.data.Record

    博客分类:
  • Ext
阅读更多

Ext.data.Record

Ext.data.Record就是一个设定了内部数据类型的对象, 它是Ext.data.Store的最基本组成部分。如果把Ext.data.Store看作是一张二维表,那么它的每一行就对应一个 Ext.data.Record实例。

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

我们使用Ext.data.Record时通常都是由 create()函数开始,首先用create()函数创建一个自定义的Record类型,如下面的代码所示:

 

PersonRecord就是我们定义的新类型,包含字符串类型的 name和整数类型的sex两个属性,然后我们使用new关键字创建PersonRecord的实例,如下面的代码所示:

 

创建对象时,可以直接通过构造方法为对象赋予初始值,将'boy'赋 值给name,0赋值给sex。

现在,我们得到了PersonRecord的实例boy,如何才能得 到它的属性呢?以下三种方式都可以获得boy中name属性的数据,如下面的代码所示:

  1. alert(boy.data.name);  
  2.   
  3. alert(boy.data['name']);  
  4.   
  5. alert(boy.get('name'));  

这里涉及Ext.data.Record的data属性,这是定义在 Ext.data.Record中的一个公共属性,用于保存当前record对象的所有数据。它是一个JSON对象,可以直接从它里面获得需要的数据。可 以通过Ext.data.Record的get()函数方便地从data属性中获得指定的属性。

如果我们需要修改boy中的数据,请不要使用以下方式直接操作 data,如下面的代码所示:

  1. boy.data.name = 'boy name';  
  2.   
  3. boy.data['name'] = 'boy name';  

而应该使用set()函数,如下面的代码所示:

  1. boy.set('name''body name');  

set()函数会判断属性值是否发生了改变,如果改变了,就要将当前 对象的dirty属性设置为true,并将修改之前的原始值放入

modified对象中,供其他函数使用。如果直接操作data中的 值,record就无法记录属性数据的修改情况。

  • Record的属性数据被修改后,我们可以执行如下几种操作。
  • commit()(提交):这个函数的效果是设置dirty为 false,并删除modified中保存的原始数据。
  • reject()(撤销):这个函数的效果是将data中已经修改了 的属性值都恢复成modified中保存的原始数据,然后设置dirty为false,并删除保存原始数据的modified对象。
  • getChanges()获得修改的部分:这个函数会把data中经 过修改的属性和数据放在一个JSON对象里并返回。例如上例中,getChanges()返回的结果是{name:’body name’}。
  • 我们还可以调用isModified()判断当前record中的数 据是否被修改。

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

  1. var boy = new PersonRecord({  
  2.   
  3.     name: 'boy',  
  4.   
  5.     sex: 0  
  6.   
  7. });  

  1. var PersonRecord = Ext.data.Record.create([  
  2.   
  3.     {name: 'name', type: 'string'},  
  4.   
  5.     {name: 'sex', type: 'int'}  
  6.   
  7. ]);  

分享到:
评论

相关推荐

    Ext.data.Store的基本用法

    console.log(record.get('name')); } ``` #### 七、总结 本文详细介绍了`Ext.data.Store`的基本用法,包括创建实例、数据转换、排序操作以及如何从`store`中获取数据。通过掌握这些基本知识,开发者可以更加灵活...

    Ext.data.Store 读取XML属性值

    这篇博客文章《Ext.data.Store 读取XML属性值》可能深入探讨了如何利用`Ext.data.reader.Xml`来解析XML并填充数据存储。 XML是一种结构化数据格式,广泛用于数据交换,尤其是Web服务和API。`Ext.data.reader.Xml`是...

    EXT中文开发手册

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

    EXT核心API详解.doc

    23. **Ext.data.Record类**:数据记录模型,用于存储和操作数据。 24. **Ext.data.DataProxy类**:数据代理,抽象了数据源,包括HttpProxy、MemoryProxy等。 25. **Ext.data.HttpProxy类**:HTTP数据代理,通过...

    Ext深入浅出 数据传输

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

    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核心api详解(3)

    3. `Ext.data.Record` - `Ext.data.Record`是EXTJS中的数据模型,类似于.NET中的DataRow或SQL Server中的一行数据,存储数据定义和它们的值。 - 公有属性包括`data`(存储JSON对象形式的数据)、`dirty`(标记记录...

    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 基本知识-store-proxy-reader-ext-connection-实例

    总结起来,本篇内容涵盖了ExtJS中的核心数据组件,包括Ext.data.Connection的使用、Ext.data.Record的创建与操作、Ext.data.Store的配置以及数据交互的Proxy和Reader机制。这些知识是构建基于ExtJS的异步数据驱动...

    Ext4.0 动态修改ComboBox选择项(本地模式)

    console.log('用户选择了:' + record.get('text')); }); ``` 5. **MyJsp.jsp关联**: 在提供的文件`MyJsp.jsp`中,可能包含了创建ComboBox和处理相关逻辑的代码。这个JSP页面是JavaServer Pages,它允许在HTML...

    Ext.grid.GridPanel属性祥解

    - 示例:`store: new Ext.data.JsonStore({ ... })` 2. **columns** - 说明:`columns`是一个数组,用来配置表格的列。每一项都是一个`Ext.grid.Column`实例。 - 示例:`columns: [{ header: '姓名', dataIndex:...

    Ext 中的Tree实现不同节点不同的右键菜单

    if (record.data.type === 'folder') { // 如果是文件夹节点 menu = Ext.create('Ext.menu.Menu', { items: [{ text: '打开', handler: function() { console.log('打开文件夹:', record.data.text); } }, {...

    EXT GridPanel获取某一单元格的值

    12. `record.get('rowName')` 或 `record.data.rowName`:这两种方式都可以用来获取Record中名为'rowName'的字段值。`record.get('rowName')`是推荐的方式,因为它更健壮,如果字段不存在,会返回undefined而不是抛...

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

    16.7.3 商品信息的删除 16.7.4 商品信息的更新 第17章 ExtJS案例:企业任务管理系统 17.1 系统概述 17.2 需求分析 17.3 数据库设计 17.4 员工任务管理 17.4.1 个人任务处理 17.4.2 个人资料编辑 17.5 主管...

    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、...

    Ext与后台服务器的交互操作

    var id = record.get("plantID"); this.fp.form.setValues({ ID: id }); } }, save: function() { var id = this.fp.form.findField("ID").getValue(); this.fp.form.submit({ waitMsg: '正在保存...', url:...

Global site tag (gtag.js) - Google Analytics