首页 未命名正文

linux编程_ExtJS4加载FormPanel数据的几种方式

云返利网 未命名 2020-05-26 09:07:20 17 0

我们做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 , 

【关于云返利网】

云返利网是阿里云、腾讯云、华为云产品推广返利平台,在各个品牌云产品官网优惠活动之外,云返利网还提供返利。您可以无门槛获得阿里云、华为云、腾讯云所有产品返利,在官网下单后就可以领取,无论是自己用、公司用还是帮客户采购,您个人都可以获得返利。云返利网的目标是让返利更多、更快、更简单!详情咨询13121395187(微信同号)