- 浏览: 257008 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
dhunter:
mongodb 需要auth 怎么加呢?
linux下mongodb+nodejs环境搭建 -
y1d2y3xyz:
xie666 写道html.push('<td alig ...
javascript DOM操作性能-----创建DOM -
xie666:
html.push('<td align="c ...
javascript DOM操作性能-----创建DOM -
轩辕丶菓菓:
<div class="quote_title ...
Ext表单之loadRecord用法详解 -
heikediguo:
这样不会按照你想要的顺序加载。
加载JS文件
这个方法是BaseForm的一个公用方法,用法比较常用,之前没有想过要专门的去讲这么个方法的运用,但看到官方实例里面也有详细的讲这个方法的具体应用,而且我觉得是比较实用的方法!从BaseForm的角度出发,他一个是所有form组件的基类,实用他的这个方法同样可以用到其子类上,比如FormPanel,我这里就是通过FormPanel来实现这个功能的!
我整理是把grid里面的数据加载到form表单中相对应字段中去!
RowSelectionModel是表示行选择模式CellSelectionModel就表示单元格选择模式
由于前面也有涉及到grid相关知识,这里能理解就行,后面会做详细讲解,同时RowSelectionModel其相对的时间则有rowselect,表示选择当前行的动作!
重点是rowselect: function(sm, row, rec) {Ext.getCmp("user_info").getForm().loadRecord(rec);}这句代码sm是选择模式row是所列的唯一ID,比如第一条记录这个值就是0,以此递推!rec就表示本条记录
loadrecord.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>loadrecord.html</title> <link rel="stylesheet" type="text/css" href="../Ext/resources/css/ext-all.css" /> <script type="text/javascript" src="../Ext/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="../Ext/ext-all.js"></script> <script type="text/javascript" src="loadrecord.js"></script> </head> <body> </body> </html>
loadrecord.js
Ext.onReady(function(){ Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget="qtip"; var data = [ ["1","男",new Date(1979,09,06),"tom",21,"you_5214@sina.com"], ["2","女",new Date(1980,08,07),"tony",46,"you_5214@sina.com"], ["3","男",new Date(1990,07,08),"Jet Li",31,"you_5214@sina.com"], ["4","女",new Date(1910,06,09),"washington",29,"you_5214@sina.com"] ]; var fields = ['id','sex','brithday','name','age','eamil']; var cm = new Ext.grid.ColumnModel([ { header: "ID", width: 60, sortable: true,dataIndex :'id', editor:new Ext.form.TextField({allowBlank:false}) }, { header: "性别", width: 70, sortable: true,dataIndex :'sex', editor:new Ext.form.ComboBox({ editable:false, allowBlank:false, displayField:"sex", valueField:"sex", triggerAction:"all", mode:"local", store:new Ext.data.SimpleStore({ fields:["sex"], data:[["男"],["女"]] }) }) }, { header: "生日", width: 130, sortable: true,dataIndex :'brithday', editor:new Ext.form.DateField() }, { header: "姓名", width: 100, sortable: true,dataIndex :'name'}, { header: "年龄", width: 100, sortable: true,dataIndex :'age', editor:new Ext.form.NumberField({ allowBlank:false }) }, { header: "Email", width: 120, sortable: true,dataIndex :'eamil', editor:new Ext.form.TextField({ vtype:"email" }) } ]); var store = new Ext.data.GroupingStore({ data :data, reader : new Ext.data.ArrayReader({id:"id"},fields) }); var gridForm = new Ext.FormPanel({ id: 'user_info', applyTo:Ext.getBody(), frame: true, autoHeight:true, labelAlign: 'left', title: '员工信息表', bodyStyle:'padding:5px', width: 600, items:[new Ext.grid.GridPanel({ title:"人员信息列表", width:600, autoHeight:true, fram:true, cm:cm, store:store, sm:new Ext.grid.RowSelectionModel({ singleSelect: true, listeners: { rowselect: function(sm, row, rec) { Ext.getCmp("user_info").getForm().loadRecord(rec); } } }), view:new Ext.grid.GroupingView({ hideGroupedColumn : true, showGroupsText :"分组显示", groupByText:"使用当前字段排序", forceFit :true, columnsText :"隐藏/显示字段", sortAscText:"升序排列", sortDescText:"降序排列" }) }),{ xtype: 'fieldset', labelWidth: 150, title:'加载grid信息内容', defaultType: 'textfield', autoHeight: true, items:[{ fieldLabel: 'ID', name :'id', anchor : '55%' },{ fieldLabel: '性别', name :'sex', anchor : '55%' },{ fieldLabel: '生日', name :'brithday', anchor : '55%' },{ fieldLabel: '年龄', name :'age', anchor : '55%' },{ fieldLabel: '邮箱', name :'eamil', anchor : '55%' }] }] }); });
源代码也加上,编码是UTF-8
评论
4 楼
轩辕丶菓菓
2011-10-24
bushkarl 写道
那我后台用struts2,我的name一般是“对象.属性”形式的,不好用吖,蛋疼了!
很好用啊
3 楼
bushkarl
2011-03-27
那我后台用struts2,我的name一般是“对象.属性”形式的,不好用吖,蛋疼了!
2 楼
y1d2y3xyz
2009-09-03
wuzhen 写道
谢谢楼主分享,又学到知识了,它这个加载好像要name属性要对应上(我测试了下),否则加载对不上,不知道是不是这样理解?
你的理解是正确的!!
1 楼
wuzhen
2009-09-02
谢谢楼主分享,又学到知识了,它这个加载好像要name属性要对应上(我测试了下),否则加载对不上,不知道是不是这样理解?
发表评论
-
Extjs源码之--Ext事件机制/继承关系
2011-10-16 16:36 1859Extjs源码之--Ext.lib.Event 中分析了EX ... -
Extjs源码之--Ext.lib.Event(事件的简单封装)
2011-10-16 11:34 2641这个对象是对事件的基础封装,在实际使用中,我们往往不从这里去 ... -
Extjs源码之--Ext.lib.Dom(Dom的基本封装)
2011-10-13 23:31 2353Extjs的对Dom最基础的封装,主要包括:元素的包含关系,元 ... -
Extjs源码之---Ext.util.DelayedTask
2011-10-12 22:56 2431/* 创建对象 var task = new Ext. ... -
Extjs源码之-- Ext.util.JSON
2011-09-23 23:19 4036很多写extjs的朋友说,Extjs的源码之间的关系太紧了,所 ... -
Ext.form.ComboBox 远程带分页显示
2011-09-23 22:00 1865很多时候针对大数据量的下拉列表的时候,我们通常需要分页显示数据 ... -
Ext.form.ComboBox change事件的BUG
2011-09-08 23:11 5390因为项目需要,想用Ext的combo控件实现动态级联,发现co ... -
Ext.grid.EditorGridPanel 中combo的显示异常
2011-09-03 00:58 2768Ext.grid.EditorGridPanel 在项目中用到 ... -
extjs源码分析-Ext.util.TaskRunner(模拟多线程)
2011-08-12 12:09 3010/** * @class Ext.util.TaskR ... -
extjs源码分析-016(Ext....)
2011-03-28 23:04 1044Ext.apply(Ext, function(){ ... -
extjs源码分析-015(Number扩展)
2011-03-20 01:03 877Ext.applyIf(Number.prototype, ... -
extjs源码分析-013(Array扩展)
2011-03-19 11:03 1116Ext.applyIf(Array.prototype, ... -
extjs源码分析-013(String扩展)
2011-03-18 23:05 1272//字符串替换 /* var cls = 'my-cl ... -
extjs源码分析-012(Funtion扩展)
2011-03-18 22:42 1289Ext.apply(Function.prototype, ... -
extjs源码分析-011(namespace)
2011-03-10 22:54 1083//命名空间,就是创建一个OBJ的一个属性, names ... -
extjs源码分析-009(Ext.urlAppend/toArray)
2011-03-10 22:43 1855//在URL后面追加参数 urlAppend : fun ... -
extjs源码分析-009(Ext.urlDecode/urlEncode)
2011-03-09 23:17 3258//把json格式转化成url的编码方式 // e.g. ... -
extjs源码分析-008(Ext.removeNode)
2011-03-09 22:35 1780DOC = document; removeNode : ... -
extjs源码分析-007(Ext.each)
2011-02-08 14:40 1612each : function(array, fn ... -
extjs源码分析-006(Ext.override/Ext.extend)
2011-02-08 00:40 2122override : function(o ...
相关推荐
7. **Ajax请求**:使用`Ext.Ajax.request`方法发送异步请求到服务器获取JSON数据。在响应回调中,解析JSON并更新表单内容。 以下是一个基本的示例代码片段,展示了如何动态加载JSON数据到表单: ```javascript // ...
在ExtJS中,我们可以使用`Ext.container.Container`类来创建一个容器,然后设置布局为`form`,以便容纳表单字段。例如: ```javascript var formPanel = Ext.create('Ext.form.Panel', { layout: 'form', items...
`Ext.form.Field`是所有表单字段的基础类,提供了字段的基本属性和方法。 **配置项** - **name**: 字段名。 - **value**: 字段的初始值。 - **disabled**: 是否禁用字段,默认为`false`。 - **fieldLabel**: 字段...
同时,`loadRecord`方法可以用来从记录对象中加载表单数据,而`getValues`和`getRecord`则用于获取当前表单的值或转换为记录对象。 在工具方面,ExtJS 提供了一些实用的工具类,如`Ext.Ajax`用于处理Ajax请求,`Ext...
通过`loadRecord`方法可以将模型数据加载到表单,而`getRecord`则能获取表单当前的数据记录。 四、表单提交方式 EXTJS表单支持两种主要的提交方式:异步(Ajax)提交和传统(Standard)提交。异步提交是EXTJS常用...
### Extjs 属性方法详解 #### 一、`Ext.form.Action` 类 `Ext.form.Action` 是用于处理表单操作的类,主要包括提交和加载数据的功能。 - **属性:** - `success`: 表示操作成功时的回调函数。 - `failure`: ...
- 其他方法如 `clearInvalid` 清除无效验证信息,`findField` 查找表单字段,`getValues` 获取表单数据,`isDirty` 检查数据是否已修改,`isValid` 进行客户端验证,`load` 加载数据,`loadRecord` 从记录加载数据...
在表单中,每个字段(包括`checkboxgroup`)都有一个与之关联的数据索引(`dataIndex`),这使得我们可以根据这个索引来绑定和检索数据。 现在,让我们深入解析提供的代码实现: ```javascript // 解决checkbox...
例如,`Ext.form.Basic`提供了`loadRecord`方法,可以将表单数据加载到数据对象,以便进行验证。同时,`Ext.Ajax.request`可以用来发送Ajax请求,向服务器发送登录凭据并接收响应。 标签“JavaScript”表明这个案例...
使用`form.loadRecord`和`form.isValid`方法进行数据加载和验证。如果所有字段都有效,可以使用`form.submit`来发送登录请求到服务器。 6. **服务器通信**:登录信息通常会通过Ajax请求发送到服务器,这可以通过...
对于修改(Update)操作,通常会涉及到已有的表单数据的更新,可以使用FormPanel组件的loadRecord()方法来加载需要修改的数据记录,用户修改完毕后,再通过提交表单来更新后端的数据。 关于ExtJs的增删改查操作,...
通过`listeners`配置项可以绑定事件处理器,例如`form.loadRecord()`加载记录,`form.submit()`提交表单数据。 7. **远程操作与Proxy** ExtJs的`Ext.data.Proxy`抽象了与服务器的通信。常见的Proxy类型包括`Ext....
- 使用 Ext.container.Viewport 或 Ext.container.Window 创建应用程序的基本容器。 - 定义页面布局,例如使用 fit 布局将所有内容适应容器大小。 2. **创建表单组件**: - 使用 Ext.form.Panel 创建包含用户名...
这里假设你已经熟悉了Ext JS的基本使用方法,包括如何定义GridPanel和FormPanel。 ```javascript var xjjlGrid = new Ext.grid.Panel({ // 配置网格的相关属性,例如store、columns、selectionModel等 }); var ...
当formpanel的数据源与一个`Ext.data.Model`实例(通常来自`Ext.grid.Panel`的行数据)相同,我们可以直接利用`Form.getForm().loadRecord(record)`方法来加载数据。这个方法会将模型对象`record`中的数据映射到表单...
例如,你可以创建一个Ext.XTemplate模板,并使用`loadRecord`方法加载数据模型到Panel中: ```javascript var template = new Ext.XTemplate( '<div class="content">{name}</div>', '<p>{description}</p>' );...
在Ext JS中,Grid是一种强大的数据展示组件,用于显示大量结构化的数据。...在实际开发中,你应该根据应用的需求和你使用的Ext JS版本选择合适的方法。同时,确保正确设置了选择模型,因为很多方法依赖于它来工作。