extjs表单直接获取gird一行的数据
来源:互联网 发布:matlab求解优化问题 编辑:程序博客网 时间:2024/05/22 03:52
在Grid和Form之间进行数据交互
版权声明:本文为博主原创文章,未经博主允许不得转载。
在Grid和Form之间进行数据交互
我们在上面已经实现了在Grid中显示学生信息列表,也实现了使用Form对学生信息执行添加、修改和删除等操作。但是,Grid和Form之间的数据还无法交互使用。
一个尚未解决的问题是,如何在Form中显示我们需要修改的学生信息呢?这个问题也适用于删除操作,如果我们不提供选择某一条学生记录的方法,那么修改和删除操作都无法进行。
在这个示例中,我们希望在单击左侧的Grid时同步更新右边Form中的数据。如果用户单击Grid中的某一行,就会把这行对应的学生信息放到Form中显示,于是我们就能对这条信息进行修改和删除操作了。为此,我们要给Grid添加一个事件监听函数,专门处理鼠标点击事件,如下面的代码所示。
// 单击修改信息开始
grid.on('rowclick', function(grid, rowIndex, event) {
var record = grid.getStore().getAt(rowIndex);
form.getForm().loadRecord(record);
form.buttons[0].setText('修改');
});
// 单击修改信息结束
这里监听的事件名为rowclick,它对应Ext.grid.RowSelectionModel的监听事件,每当用户选中Grid中的一行时,就会触发该事件。事件被触发的同时还会执行我们设置的监听函数。
监听函数预设了3个参数:第一个参数grid表示哪个Grid被点击了;第二个参数rowIndex表示选中了哪一行;event是EXT内部通用的事件对象,我们在这里没有用到。
在监听函数执行时,首先通过grid.getStore().getAt(rowIndex);获得被选中的这一行对应的record。这个record是保存在store中的数据,Grid上没有显示出来的id也包含在其中。对应的所有学生信息都可以从这个record中获得,但并不需要从record中把学生信息逐一取出来,然后再逐一放到Form中去。Form提供的loadRecord()函数可以一次性将record中的数据赋予Form中的输入组件,只要保证输入组件的name或hiddenName与record中定义的属性一致即可。
在使用loadRecord()将Grid中选择的数据复制到Form中以后,我们再调用form. buttons[0].setText('修改'); 将Form中的第一个按钮的文字设置为“修改”。这样用户就知道现在提交Form执行的是对某一条学生信息进行修改的操作。如果要继续添加新的学生信息,可以单击“清空”按钮,它会将刚刚从Grid中复制的信息都清除掉,包括id隐藏域中的数据,还会把第一个按钮上的“修改”设置为“添加”。再次输入数据并单击“提交”按钮,这时执行的就是“添加”操作了。
到此为止,我们用前面学过的知识实现了一个完整的学生信息管理系统。其中涉及BorderLayout的布局应用、Grid的分页显示和数据排序、Form的提交和清空、利用Ajax与后台进行数据交互、通过事件监听实现Grid与Form之间的数据交互等知识。
- 顶
- 0
- 踩
- 0
- 上一篇Ubuntu 安装xbmc播放器
- 下一篇ext window事件
我的同类文章
- •ViewPort2012-07-30
- •Ext.Toolbar中元素居中2012-07-29
- •ExtJs3.4简介2012-07-22
- •使用PL/SQL Developer远程连接到oracle 11g2012-04-14
- •Extjs combox实现autocompelte效果2012-07-29
- •ext window事件2012-07-29
- •Eclipse和MyEclipse安装JQuery插件2012-06-05
参考知识库
- 猜你在找
- 基于Servlet+JDBC+Bootstrap+MySQL+AJAX权限管理系统实战教程
- 分布式资源管理系统的前世今生,深入剖析YARN资源调度架构
- Struts实战-使用SSH框架技术开发学籍管理系统
- 微信公众号开发7-用户管理-微信开发php
- Ajax程序开发经典实例视频教程
- Linux下C语言编程
- Linux下C语言编程
- extjs新宠儿
- Linux下C语言编程
- Linux下C语言编程
核心技术类目
- extjs表单直接获取gird一行的数据
- 关于Extjs gird使用checkbox的方法
- Extjs将gird中指定行的复选框勾选
- Extjs将gird中指定行的复选框勾选
- 如何重载ext.gird里的数据
- Extjs 获取Store的数据
- ExtJS通过一行代码获取当前时间的前一天
- extjs的grid只显示一行数据的问题
- 我们项目中对Ext.gird.EditorGridPanel是如何添加一行,删除一行的
- 获取DataTabl的第一行和最后一行的数据
- ExtJs中gird用法一
- DataTable获取第一行和最后一行的数据
- EasyUI获取页面的一行数据
- Extjs 3.X 和 Extjs 4.x 为GridPanel动态添加一行数据的区别
- Extjs 3.X 和 Extjs 4.x 为GridPanel动态添加一行数据的区别
- 获取一行数据
- Extjs grid 获取双击的项数据
- FineUI Gird单元格编辑 保存新增的一行到数据库 LINQ
- 固定窗体大小
- 使用libimobiledevice在linux上挂载iphone6
- 互联网企业的敏捷开发之道
- 设计模式之装饰者模式
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- extjs表单直接获取gird一行的数据
- Codeforces Beta Round #17 D. Notepad
- 欢迎使用CSDN-markdown编辑器
- 学生信息管理系统
- java基础巩固----IO和多线程
- hibernate关联关系单向一对多
- Informix 11.5 SQL 语句性能监控方法及实现
- Core Graphics简介
- SpringBoot——入门
暂无评论