Ext.data.Record

來源:互聯網
上載者:User

轉自:http://www.cnblogs.com/maocs/archive/2010/02/24/1672601.html

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;

var p = new Plant({empno:dno,ename:dme,hiredate:l});

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.