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 &amp; DHTML 实例编程(教程)基础知识
Jun 02 Javascript
javascript 关闭IE6、IE7
Jun 01 Javascript
jQuery 解析xml文件
Aug 09 Javascript
Jquery下判断Id是否存在的代码
Jan 06 Javascript
关于js注册事件的常用方法
Apr 03 Javascript
js实现的奥运倒计时时钟效果代码
Dec 09 Javascript
JavaScript中数组去除重复的三种方法
Apr 22 Javascript
jQuery图片左右滚动代码 有左右按钮实例
Jun 20 Javascript
jQuery easyui刷新当前tabs的方法
Sep 23 Javascript
详解webpack分离css单独打包
Jun 21 Javascript
微信小程序 select 下拉框组件功能
Sep 09 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
Aug 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
自己的js工具 Cookie 封装
2009/08/21 Javascript
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
javascripit实现密码强度检测代码分享
2013/12/12 Javascript
使用js实现数据格式化
2014/12/03 Javascript
JS选项卡动态替换banner图片路径的方法
2015/05/11 Javascript
简介JavaScript中的italics()方法的使用
2015/06/08 Javascript
js实现a标签超链接提交form表单的方法
2015/06/24 Javascript
原生JavaScript实现Ajax的方法
2016/04/07 Javascript
学习Node.js模块机制
2016/10/17 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
Three.js实现简单3D房间布局
2018/12/30 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
2019/10/31 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
Python日期操作学习笔记
2008/10/07 Python
Python open()文件处理使用介绍
2014/11/30 Python
用python记录运行pid,并在需要时kill掉它们的实例
2017/01/16 Python
Python使用cx_Oracle调用Oracle存储过程的方法示例
2017/10/07 Python
Python http接口自动化测试框架实现方法示例
2018/12/06 Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
2020/01/08 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
解决python3输入的坑——input()
2020/12/05 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
阿迪达斯奥地利官方商城:adidas.at
2016/10/16 全球购物
实习医生自我评价
2013/09/22 职场文书
晚会闭幕词
2015/01/28 职场文书
学校教学工作总结2015
2015/05/19 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
Vue2.0搭建脚手架
2022/03/13 Vue.js