ExtJs4学习(十四)Form 加载/更新Record(Model)

什么是Record呢?Record是数据模型对象中的一条记录,所以在使用Record之前,我们需要先定义Model。

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加载Record

Form组件提供了loadRecord()方法来加载Record对象。

var formCmp = this.up("form");
formCmp.loadRecord(userRecord);

Form更新Record

当我们对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"
    });
});

点击查看在线演示

时间: 2024-12-09 06:02:58

ExtJs4学习(十四)Form 加载/更新Record(Model)的相关文章

spring学习 十六 spring加载属性文件

第一步:创建一个properties文件,以数据库链接作为实例 db.properties jdbc.url=jdbc:mysql://192.168.153.128:3306/mybaties?characterEncoding=utf-8 jdbc.driver=com.mysql.jdbc.Driver jdbc.username=com.mysql.jdbc.Driver jdbc.password=123456 第二步在spring配置文件加入context的约束,并使用<contex

ExtJs4 学习3 combox自动加载的例子

Ext.onReady(function() {   delivery_datas = [{ "Id" : "1", "Name" : "邮寄" }, { "Id" : "2", "Name" : "自提" }, { "Id" : "3", "Name" : "送货上门"

Activity四种加载模式

android activity四种加载模式,有 >>>standard: 标准模式,这是默认的加载方式 >>>singleTop : task顶单例模式 >>>singleTask : Task内单列模式 >>>singleInstance :全局单列模式 <1>standard: 标准模式,这是默认的加载方式 public class StandardTest extends Activity { @Override

libgdx学习记录16——资源加载器AssetManager

AssetManager用于对游戏中的资源进行加载.当游戏中资源(图片.背景音乐等)较大时,加载时会需要较长时间,可能会阻塞渲染线程,使用AssetManager可以解决此类问题. 主要优点: 1. 大多数资源加载器AssetLoader都是异步加载,可以避免阻塞渲染线程. 2. 通过引用计数来进行释放资源. 3. 通过一个对象来管理所有其他资源. 主要函数: load(path,type)加载某个路径的资源文件,后面type指定所要加载的资源类型.这个函数只是将资源文件加入到资源队列中,并不会

RX系列四 | RxAndroid | 加载图片 | 提交表单

RX系列四 | RxAndroid | 加载图片 | 提交表单 说实话,学RxJava就是为了我们在Android中运用的更加顺手一点,也就是RxAndroid,我们还是先一步步来,学会怎么去用的比较好,之前的三篇算是铺垫,让你有一点认识,那Rx在Android中有什么好处呢?我们先模拟一些原始功能和他对比下 一.加载图片 很多人说Rx出来之后,是编程思想的一种进阶,实际上我学习了这种思想之后,确实是觉得有了很大的改变,不过,需要一点学习成本再加上,需要对原先的思想有些改观,使得我依旧有点不适应

thinkphp学习笔记9—自动加载

1.命名空间自动加载 在3.2版本中不需要手动加载类库文件,可以很方便的完成自动加载. 系统可以根据类的命名空间自动定位到类库文件,例如定义了一个类Org\Util\Auth类: namespace Org\Util; class Auth { } 保存到ThinkPHP/Library/Org/Util/Auth.class.php 这样我们就可以直接实例化了, new \Org\Util\Auth(); 实例化之后系统会自动加载 ThinkPHP/Library/Org/Util/Auth.

四种加载React数据的技术对比(Meteor 转)

1.四种加载React数据的技术对比(Meteor 转) : https://sanwen8.cn/p/31e4kdE.html 2. Meteor + Appolo   TelescopeJS/Telescope    https://github.com/TelescopeJS/Telescope/tree/devel http://nova-docs.telescopeapp.org/architecture.html

Oracle学习(十四):管理用户安全

--用户(user) SQL> --创建名叫 grace 密码是password 的用户,新用户没有任何权限 SQL> create user grace identified by password; 验证用户: 密码验证方式(用户名/密码) 外部验证方式(主机认证,即通过登陆的用户名) 全局验证方式(其他方式:生物认证方式.token方式) 优先级顺序:外部验证>密码验证 --权限(privilege) 用户权限有两种: System:允许用户执行对于数据库的特定行为,例如:创建表.

ios网络学习------4 UIWebView的加载本地数据的三种方式

UIWebView是IOS内置的浏览器,可以浏览网页,打开文档  html/htm  pdf   docx  txt等格式的文件.  safari浏览器就是通过UIWebView做的. 服务器将MIME的标识符等放入传送的数据中告诉浏览器使用那种插件读取相关文件. uiwebview加载各种本地文件(通过loadData方法): - (void)viewDidLoad { [super viewDidLoad]; [self setupUI]; NSString *path = [[NSBund