我们做web应用最多的就是处理表单,extjs为我们提供了很多处理表单的功能,很多初学者疑惑怎么加载表单数据,到底能用什么方式加载?本文中,我将我自己实验过的进行一下总结,自己备忘,也希望能帮助到其他人。
1.使用loadRecord加载Model数据。这也是我目前用的较多的。
 比如有个角色管理,定义如下model“:

Ext.define('roleModel', {  
    extend: 'Ext.data.Model',  
    fields: [  
        { name: 'id', mapping: "id" },      
        { name: 'roleName', mapping: "roleName" },  
        { name: 'status', mapping: "status" },  
        { name: 'remark', mapping: "remark" }  
    ],  
    idProperty: 'id'  
});  

定义一个表单如下:

var formId = "roleEditForm";  
var formPanel = Ext.create("Ext.form.Panel",{  
                    id: formId,  
                    height: 270,  
                    bodyStyle: "padding-top:20px;",  
                    url: "role/save.action",  
                    method: 'POST',  
                    defaults:  
                        {  
                        width: 200,  
                        labelStyle: "padding-left:20px;",  
                            border: false  
                        },  
  
                    items: [  
                        {  
                            name: 'roleName',  
                            fieldLabel: '角色名称',  
                            xtype: "textfield",  
                            maxLength:40  
                        }  
                        ,  
                        {  
   
                            name: 'remark',  
                            fieldLabel: '备注',  
                            xtype: "textfield",  
                            width:300,  
                            maxLength:200  
                        }  
                        ,  
                          
                        {  
                            name: 'id',  
                            xtype: "hidden",  
                            value:id  
                        }  
                          
                         ,  
                        {  
                            name: 'method',  
                            xtype: "hidden",  
                            value:id==0?"save":"update"  
                        }  
                    ]  
                })  

那么我加载数据的时候使用loadRecord方式:

var form = Ext.getCmp(formId);  
                var id=1;//角色的id  
                Ext.ModelMgr.getModel('roleModel').load( id,{  
                    url:"role/getinfo.action",  
                    success: function(obj) {  
                        form.loadRecord(obj);  
                    }  
                });  

2.第二种是给formpanel增加reader的方式。
 在第一种方法中不需要reader,只是把record中的字段与表单中字段的name对应起来,就可以加载数据了。reader方式则需要生成一个reader对象,利用reader去匹配字段,达到填充数据的目的

form不说了,首先定义reader:

var roleReader = Ext.create('Ext.data.reader.Json', {  
  
        root : 'data',//数据的根属性,如果只是纯数据对象,没有什么root,那写""(空串)或者空着就行  
        model :'roleModel'//使用的model  
});  

定义一个reader,reader中指定了要使用的model。然后表单中指定该reader:

reader: roleReader ,  
formPanel.load({  
url: 'role/getinfo.action',  
params: {'id':roleid}  
});  

ExtJS4加载FormPanel数据的几种方式的更多相关文章

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

    ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...

  2. iOS --- UIWebView的加载本地数据的三种方式

    UIWebView是IOS内置的浏览器,可以浏览网页,打开文档  html/htm  pdf   docx  txt等格式的文件.  safari浏览器就是通过UIWebView做的. 服务器将MIM ...

  3. ArcGIS客户端API中加载大量数据的几种解决办法

    ArcGIS客户端API中加载大量数据的几种解决办法 2011-03-25 18:17 REST风格的一切事物方兴未艾,ArcGIS Server的客户端API(Javascript/Flex/Sil ...

  4. 加载xib文件的两种方式

    一.加载xib文件的两种方式 1.方法一(NewsCell是xib文件的名称) NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@&quo ...

  5. Hadoop生态圈-注册并加载协处理器(coprocessor)的三种方式

    Hadoop生态圈-注册并加载协处理器(coprocessor)的三种方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 到目前为止,大家已经掌握了如何使用过滤器来减少服务器端通过 ...

  6. Velocity中加载vm文件的三种方式

    Velocity中加载vm文件的三种方式: a.  加载classpath目录下的vm文件 /** * 初始化Velocity引擎 * --VelocityEngine是单例模式,线程安全 * @th ...

  7. 转 Velocity中加载vm文件的三种方式

    Velocity中加载vm文件的三种方式   velocitypropertiespath Velocity中加载vm文件的三种方式:    方式一:加载classpath目录下的vm文件 Prope ...

  8. Spring加载properties文件的两种方式

    在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可, ...

  9. 前端性能优化(四)——网页加载更快的N种方式

    网站前端的用户体验,决定了用户是否想要继续使用网站以及网站的其他功能,网站的用户体验佳,可留住更多的用户.除此之外,前端优化得好,还可以为企业节约成本.那么我们应该如何对我们前端的页面进行性能优化呢? ...

随机推荐

  1. CSS——伪元素与伪类

    伪类与伪元素 伪类:在特殊性中占据0,0,1,0 :link 向未访问的链接添加特殊的样式.也就是说,链接所指的 URI 尚未出现在用户代理的历史中.这种状态与 :visited状态是互斥的. :vi ...

  2. jquery animate() 防止多次执行

    参考:关于jquery 怎样让 animate不多次执行呢 当click方法里面,执行animate时,然后点击的比较频繁,那么animate()的动画也会比较多次滚动. 如: function sc ...

  3. mysql复习---仅涉及单表的操作

    一.登录数据库 二.创建数据库: 三.删除数据库 四.使用数据库创建表 五.向表中插入数据 六.查询 1.查询所有数据: 2.姓名查询 3.性别查询 4.查询姓名 5.根据年龄大小查询 6.多个条件查 ...

  4. 如何用java实现使用电子邮件控制你的电脑

    上两天看到一篇文章,用python实现电子邮件控制电脑的有趣的小程序 python 实现微信控制电脑     python版的视频教程 但是苦于自己没接触过python于是想到能不能用java实现,于 ...

  5. Anddoi 将时间转换为指定时区的时间

    import java.text.Format;import java.text.ParseException;import java.text.SimpleDateFormat;import jav ...

  6. VBA文件处理

    Option Explicit ' ▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽ ' Excel对象 ' △△△△△△△△△△△△△△△△△△ ' Open Public Function FileOpen_ ...

  7. Exam 70-462 Administering Microsoft SQL Server 2012 Databases 复习帖

    好吧最近堕落没怎么看书,估计这个月前是考不过了,还是拖到国庆之后考试吧.想着自己复习考试顺便也写点自己的复习的概要,这样一方面的给不准备背题库的童鞋有简便的复习方法(好吧不被题库的同学和我一样看MSD ...

  8. WCF编程系列(四)配置文件

    WCF编程系列(四)配置文件   .NET应用程序的配置文件 前述示例中Host项目中的App.config以及Client项目中的App.config称为应用程序配置文件,通过该文件配置可控制程序的 ...

  9. ubuntu修改grub背景

    grub背景由/etc/grub.d/05_debian_theme定义,修改图片只需要将图片文件放到/boot/grub,d/下即可, 修改颜色只需编辑/boot/grub.d/grub.cfg

  10. someExperience

    // 面试题1 var name = 'World'; (function () { if (typeof name==='undefined') { var name = 'jack'; conso ...