Ext Js 3.2中Record的使用方法
先來了解Ext Js和SQL的不用語法:
1:Ext Js語法
var EmployeeRecord = new Ext.data.Record.create({
{name: 'empId ', type: 'int'}
{name: 'first', type: 'string'},
{name: 'name', type': 'string'},
{name: 'age', type: 'int'},
{name: 'email', type: 'string'}
});
2: SQL語法
create table EmployeeRecord {
empId number(8),
first varchar2(20),
name varchar2(20),
age number(8),
email varchar2(20)
}
從上面的情況下,Ext.data.Record其實就相當於表中的一行資料,而create方法中定義了欄位的型別就相當於表中的列,type就是表中的列型別。
可以通過下面兩種方式來建立一行資料,而且可以對每行資料進行賦值
(1)直接建立方式
var empRecord = new EmployeeRecord({
first: 'first1',
name: '張三',
age: '20',
});
(2) 通過set方式建立
var myRecord = new EmployeeRecord ();
myRecord .set("first", "first1");
myRecord .set("name", "張三");
myRecord .set("age", "20");
上述兩個例子使用了不同的方法進行儲存資料,下面使用兩種不同的方法讀取資料:
employeeRecord.getField('first');
employeeRecord.getField('name');
employeeRecord.getField('age');
employeeRecord.getField('email);
myRecord.get('first');
myRecord.get('name');
myRecord.get('age');
myRecord.get('email');
3:Record屬性
名稱 |
型別 |
描述 |
dirty |
Boolean |
記錄資料是否修改過 |
editing |
Boolean |
記錄資料是否正在編輯狀態 |
modified |
Object |
儲存了一個數據欄位名稱和值的集合,用來儲存之前修改過的欄位名稱和值 |
Ext.Data.Record是一個設定了內部資料型別的物件,它是Ext.data.Store的最基本組成部分。
myRecord .set("first", "first1");
在程式碼中,set方法會自動判斷屬性的值是否改變,如果改變,就將當前物件的dirty屬性設定為ture,並將修改之前的原始資料儲存到modified物件中,如果直接
使用data中的資料,那麼Record就無法記錄資料是否修改了。
當Record中的屬性值被修改後,它將會執行以下幾個方法:
- commit(): 該方法是用來設定dirty為false的,並且刪除modified中儲存的原始資料內容。
- reject(): 該方法是用來恢復修改的內容為原始資料,並且將dirty設定為false, 且刪除原始的資料內容
- getChanges(): 該方法是用來將data中修改過的內容和資料放入一個JSON物件中返回
- isModified(): 判斷當前record內的資料是否被修改