ExtJs 4ラーニング(14)Formロード/更新Record(Model)
Recordとは何ですか?Recordはデータモデルオブジェクトのレコードですので、Recordを使用する前にModelを定義する必要があります.
Model定義
Modelの定義については、単独で説明しますが、今日は簡単に使用されています.Modelコードは以下の通りです.
Modelを定義したら、レコードを作成できます.
Formロードレコード
Formコンポーネントは、RecordオブジェクトをロードするloadRecord()メソッドを提供します.
Form更新レコード
Formのデータを編集した後、変更した結果をRecordに反映したい場合は、updateRecord()メソッドを使用する必要があります.updateRecordメソッドを使用するには、FormがloadRecordメソッドを呼び出してRecordデータをバインドしていることを前提にします.
FormバインドのRecordの削除
FormバインドRecord以降、ベースバインドが必要な場合はResetメソッドを使用してパラメータtrueを入力すると、FormインタフェースとバインドされたRecordが消去されます.
オンラインサンプル
プレゼンテーション全体の完全なコードは次のとおりです.
クリックしてオンラインプレゼンテーションを表示
Model定義
Modelの定義については、単独で説明しますが、今日は簡単に使用されています.Modelコードは以下の通りです.
Ext.define("UserModel", {
extend: 'Ext.data.Model',
fields: ["UserName", "Email"]
});
Modelを定義したら、レコードを作成できます.
var userRecord = Ext.create("UserModel", {
UserName: "Qi Fei",
Email: "[email protected]"
});
Formロードレコード
Formコンポーネントは、RecordオブジェクトをロードするloadRecord()メソッドを提供します.
var formCmp = this.up("form");
formCmp.loadRecord(userRecord);
Form更新レコード
Formのデータを編集した後、変更した結果をRecordに反映したい場合は、updateRecord()メソッドを使用する必要があります.updateRecordメソッドを使用するには、FormがloadRecordメソッドを呼び出してRecordデータをバインドしていることを前提にします.
var formCmp = this.up("form");
formCmp.updateRecord();
console.log(userRecord);
FormバインドのRecordの削除
FormバインドRecord以降、ベースバインドが必要な場合はResetメソッドを使用してパラメータtrueを入力すると、FormインタフェースとバインドされたRecordが消去されます.
var formCmp = this.up("form");
formCmp.getForm().reset(true);
オンラインサンプル
プレゼンテーション全体の完全なコードは次のとおりです.
Ext.onReady(function () {
Ext.define("UserModel", {
extend: 'Ext.data.Model',
fields: ["UserName", "Email"]
});
var userRecord = Ext.create("UserModel", {
UserName: "Qi Fei",
Email: "[email protected]"
});
Ext.create("Ext.form.FormPanel", {
title: "ExtJS Form / Record",
width: 350,
height: 300,
x: 30,
y: 30,
layout: "form",
bodyPadding: "5",
defaultType: "textfield",
fieldDefaults: { labelAlign: "right", labelWidth: 55 },
items: [
{ name: "UserName", fieldLabel: " ", allowBlank: false },
{ name: "Email", fieldLabel: " " }
],
buttons: [
{
text: " Record",
handler: function () {
var formCmp = this.up("form");
formCmp.loadRecord(userRecord);
}
},
{
text: " Record",
handler: function () {
var formCmp = this.up("form");
formCmp.updateRecord();
console.log(userRecord);
}
},
{
text: " ",
handler: function () {
var formCmp = this.up("form");
formCmp.getForm().reset(true);
}
}
],
renderTo: "container"
});
});
クリックしてオンラインプレゼンテーションを表示