ExtJS4 表格的嵌套 rowExpander应用


Posted in Javascript onMay 02, 2014

今天做一个grid,里面的数据需要带明细,思来想去还是搞个表格嵌套吧!看下图
ExtJS4 表格的嵌套 rowExpander应用 

对于grid中每一条记录点击左边的+号能展开一个明细的子表格 所有数据包括列名均从后台获得,子表格的数据暂时在本地以做测试

在此贴一些代码留下记录

function displayInnerGrid(renderId) { //Model for the inside grid store 
Ext.define('TestModel', { 
extend: 'Ext.data.Model', 
fields: [ 
{ name: 'Field1' }, 
{ name: 'Field2' }, 
{ name: 'Field3' } 
] 
}); 
//dummy data for the inside grid 
var dummyDataForInsideGrid = [ 
['a', 'a', 'a'], 
['b', 'b', 'b'], 
['c', 'c', 'c'] 
]; 
var insideGridStore = Ext.create('Ext.data.ArrayStore', { 
model: 'TestModel', 
data: dummyDataForInsideGrid 
}); 
innerGrid = Ext.create('Ext.grid.Panel', { 
store: insideGridStore, 
selModel: { 
selType: 'cellmodel' 
}, 
columns: [ 
{ text: "明细1", dataIndex: 'Field1' }, 
{ text: "明细2", dataIndex: 'Field2' }, 
{ text: "明细3", dataIndex: 'Field3' } 
], 
columnLines: true, 
autoWidth: true, 
autoHeight: true, 
//width: 400, 
//height: 200, 
frame: false, 
// iconCls: 'icon-grid', 
renderTo: renderId 
}); 
/* innerGrid.getEl().swallowEvent([ 
'mousedown', 'mouseup', 'click', 
'contextmenu', 'mouseover', 'mouseout', 
'dblclick', 'mousemove' 
]); */ 
} 

function destroyInnerGrid(record) { 
var parent = document.getElementById(record.get('id')); 
var child = parent.firstChild; 
while (child) { 
child.parentNode.removeChild(child); 
child = child.nextSibling; 
} 
}

grid_huizong.view.on('expandBody', function (rowNode, record, expandRow, eOpts) { 
//console.log(record.get('id')); 
displayInnerGrid(record.get('id')); 
}); grid_huizong.view.on('collapsebody', function (rowNode, record, expandRow, eOpts) { 
destroyInnerGrid(record); 
});

以上代码为grid绑定事件。。具体代码啥意思应该能看懂

注意在定义grid的时候使用

plugins: [{ 
ptype: 'rowexpander', 
rowBodyTpl : [ 
'<div id="{id}">', 
'</div>' 
] 
}],

这个是rowexpander插件。。网上有人说用的时候需要引用,但是我没引用什么也可以用了?

注意上面三段代码中关键的id,这个id你可以改,但是需要改成后台发过来的数据中fields中的第一项。。我这个例子后台发过来的fields第一项是id

Javascript 相关文章推荐
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
Aug 12 Javascript
js实现的仿新浪微博完美的时间组件升级版
Dec 20 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
May 12 Javascript
Jsonp post 跨域方案
Jul 06 Javascript
jquery自动补齐功能插件flexselect用法示例
Aug 06 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
Mar 22 jQuery
JavaScript正则表达式校验与递归函数实际应用实例解析
Aug 04 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
Aug 31 Javascript
vue-router实现编程式导航的代码实例
Jan 19 Javascript
Node.js如何对SQLite的async/await封装详解
Feb 14 Javascript
vue项目前端知识点整理【收藏】
May 13 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
May 14 Javascript
用json方式实现在 js 中建立一个map
May 02 #Javascript
jquery操作checkbox实现全选和取消全选
May 02 #Javascript
ExtJS4 动态生成的grid导出为excel示例
May 02 #Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
May 01 #Javascript
jquery等待效果示例
May 01 #Javascript
js实现checkbox全选和反选示例
May 01 #Javascript
jquery插件之定时查询待处理任务数量
May 01 #Javascript
You might like
我用php+mysql写的留言本
2006/10/09 PHP
php foreach、while性能比较
2009/10/15 PHP
PHP字符串word末字符实现大小写互换的方法
2014/11/10 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
更正确的asp冒泡排序
2007/05/24 Javascript
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
JavaScript获取网页表单提交方式的方法
2015/04/02 Javascript
js验证框架之RealyEasy验证详解
2016/06/08 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
2017/09/05 jQuery
Vue from-validate 表单验证的示例代码
2017/09/26 Javascript
基于Bootstrap表单验证功能
2017/11/17 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
webpack 代码分离优化快速指北
2019/05/18 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
JS实现秒杀倒计时特效
2020/01/02 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
python中lambda与def用法对比实例分析
2015/04/30 Python
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
python实现在一个画布上画多个子图
2020/01/19 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
html5 canvas-2.用canvas制作一个猜字母的小游戏
2013/01/07 HTML / CSS
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
酒店办公室文员岗位职责
2013/12/18 职场文书
班级文化建设标语
2014/06/23 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
委托公证书格式
2015/01/26 职场文书
vue响应式原理与双向数据的深入解析
2021/06/04 Vue.js