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 相关文章推荐
jQuery 选择器、DOM操作、事件、动画
Nov 25 Javascript
JS实现点击下载的小例子
Jul 10 Javascript
使用JSLint提高JS代码质量方法分享
Dec 16 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
Apr 27 Javascript
JS+HTML5实现图片在线预览功能
Jul 22 Javascript
说说AngularJS中的$parse和$eval的用法
Sep 14 Javascript
利用原生js实现html5小游戏之打砖块(附源码)
Jan 03 Javascript
Vue多种方法实现表头和首列固定的示例代码
Feb 02 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
Jul 06 Javascript
JavaScript事件对象深入详解
Dec 30 Javascript
什么时候不能在 Node.js 中使用 Lock Files
Jun 24 Javascript
JavaScript Reflect Metadata实现详解
Dec 12 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
ThinkPHP实现二级循环读取的方法
2014/11/03 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
[原创]php求圆周率的简单实现方法
2016/05/30 PHP
php中使用websocket详解
2016/09/23 PHP
PHP实现文件下载【实例分享】
2017/04/28 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
Javascript的匿名函数小结
2009/12/31 Javascript
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
javascript性能优化之事件委托实例详解
2015/12/12 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
2015/12/16 Javascript
基于JavaScript代码实现微信扫一扫下载APP
2015/12/30 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
2018/03/15 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
详解Vue的mixin策略
2020/11/19 Vue.js
[02:16]卖萌的僵尸 DOTA2神话信使飞僵小宝来袭
2014/03/24 DOTA
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
用python统计代码行的示例(包括空行和注释)
2018/07/24 Python
TensorFlow打印tensor值的实现方法
2018/07/27 Python
Python开发的十个小贴士和技巧及长常犯错误
2018/09/27 Python
分析经典Python开发工程师面试题
2019/04/08 Python
python 成功引入包但无法正常调用的解决
2020/03/09 Python
python字符串判断密码强弱
2020/03/18 Python
CNC数控操作工岗位职责
2013/11/19 职场文书
中专药剂专业应届毕的自我评价
2013/12/27 职场文书
营销总经理岗位职责
2014/02/02 职场文书
外贸采购员岗位职责
2014/03/08 职场文书
婚礼答谢宴主持词
2014/03/14 职场文书
商铺租赁意向书
2014/04/01 职场文书
室内趣味活动方案
2014/08/24 职场文书
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android
Win10多屏显示如何设置?Win10电脑多屏显示设置操作方法
2022/07/07 数码科技