我们做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. IIS 之 HTTP错误信息提示

    一.HTTP返回码 [1]1xx - 信息提示 这些状态代码表示临时的响应.客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应. a. 100 - 继续. b. 101 - 切换协议. [2 ...

  2. php json_encode转JSON 编码显示中文

    对变量进行 JSON 编码显示中文 /**context":"/u2345/u43245/u2345 转成中文显示 * 对变量进行 JSON 编码[{"time" ...

  3. ASP的高效率的分页算法.net,php同样可以参考

    一般习惯使用的有两种分页算法,一是传统的ADO分页,二是SELECT TOP分页算法.对于小型数据表,比如一两万的数据量的表,我倾向使用ADO算法,对于大型的数据表,则必须采用后者的算法了. 先来说说 ...

  4. Xamarin 安装体验

    1.先从官网下载https://www.xamarin.com/downloadXamarin for Visual Studio 2.MAC上下载https://store.xamarin.com/ ...

  5. Asp.net MVC 4 视图相关和其他

    @{ Layout = “…”} To define layout page Equivalent to asp.net master-page 要定义相当于ASP.NET母版页的页面布局 @mode ...

  6. C#3.0 集合

    实现IEnumerable<T>伴随一个迭代: public class MyGenCollection : IEnumerable<int> { int[] data = { ...

  7. ios Swift 动手写

    Swift语言概览 基本概念 注:这一节的代码源自The Swift Programming Language中的A Swift Tour. Hello, world 类似于脚本语言,下面的代码即是一 ...

  8. javascript 第26节 jQuery对象

    <html> <head> <title>jQuery</title> <!--导入jquery库--> <script type=& ...

  9. centos下 forever: 让nodejs应用后台执行

    在LINUX中我们可以使用这种简单的方式让node.js在后台运行: nohup node your_app.js & forever可以让我们做得更好,并且可以跨平台的在windows和Li ...

  10. php中位运算的应用:货品的状态

    效果如下图: 分析:用一个整数的二进制可以记录32状态 00000000 00000000 00000000 00000000  >>=0 从右往左保存这三个的状态: 精品选中,第一位设置 ...