ExtJS中实现嵌套表格
先看效果:

代码如下:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>test</title>
- <script type="text/javascript">
- </script>
- <link rel="stylesheet" type="text/css" href="Lib/ExtJs/2_2/resources/css/ext-all.css" />
- <script type="text/javascript" src="Lib/ExtJs/2_2/adapter/ext/ext-base.js"></script>
- <script type="text/javascript" src="Lib/ExtJs/2_2/ext-all-debug.js"></script>
- <script type="text/javascript" src="Lib/ExtJs/2_2/source/locale/ext-lang-zh_CN.js"></script>
- <script type="text/javascript" src="Lib/ExtJs/plus/RowExpander.js"></script>
- <script type="text/javascript">
- Ext.onReady(function(){
- var testData=[
- ["lugreen","男",26,[["数学",100],["语文",150]]]
- ,["lisi","男",25,[["数学",100],["语文",150]]]
- ,["zhangsan","男",27,[["数学",120],["语文",158]]]
- ];
- //
- storeTest= new Ext.data.SimpleStore({
- fields: ["name","sex","age","grade"]
- ,data: testData
- });
- var expander = new Ext.grid.RowExpander({
- tpl : new Ext.XTemplate(
- '<div class="detailData">',
- '',
- '</div>'
- )
- });
- expander.on("expand",function(expander,r,body,rowIndex){
- //查找 grid
- window.testEle=body;
- //alert(body.id);
- if (Ext.DomQuery.select("div.x-panel-bwrap",body).length==0){
- //alert("a");
- var data=r.json[3];
- var store=new Ext.data.SimpleStore({
- fields: ["class","degrade"]
- ,data:data
- });
- var cm = new Ext.grid.ColumnModel([
- {header: "科目",dataIndex: 'class',width: 130,hideable:false,sortable:false,resizable:true}
- ,{header: "成绩",dataIndex: 'degrade',width: 130,hideable:false,sortable:false,resizable:true}
- ]);
- Ext.DomQuery.select("div.detailData")[0];
- var grid = new Ext.grid.GridPanel(
- {
- store:store,
- cm:cm,
- renderTo:Ext.DomQuery.select("div.detailData",body)[0],
- autoWidth:true,
- autoHeight:true
- }
- );
- }
- });
- //var sm=new Ext.grid.CheckboxSelectionModel({singleSelect:true});
- var cm = new Ext.grid.ColumnModel([
- expander
- ,{header: "姓名",dataIndex: 'name',width: 50,hideable:false,sortable:false}
- ,{header: "性别",dataIndex: 'sex',width: 130,hideable:false,sortable:false,resizable:true}
- ,{header: "年龄",dataIndex: 'age',width: 130,hideable:false,sortable:false,resizable:true}
- ]);
- var grid = new Ext.grid.GridPanel(
- {
- id:'testgrid',
- store:storeTest,
- cm:cm,
- renderTo:"grid1",
- width:780,
- autoHeight:false,
- height:300,
- listeners:{},
- plugins:[expander]
- }
- );
- });
- </script>
- <style type="text/css">
- #div2 h2 {
- font-weight:200;
- font-size:12px;
- }
- .c1 h2 {
- font-weight:200;
- }
- </style>
- </head>
- <body>
- <div id="grid1">
- </div>
- <div id="grid2">
- </div>
- </body>
- </html>
其中使用到的"RowExpander.js"为extjs官方示例中自带的。
实现这个嵌套表格要注意两点技巧:
1 提供给外层表格的dataStore的数据源以嵌套数组的形式表示细节区的数据,如下面的黑体所示。
- var testData=[
- ["lugreen","男",26,[["数学",100],["语文",150]]]
- ,["lisi","男",25,[["数学",100],["语文",150]]]
- ,["zhangsan","男",27,[["数学",120],["语文",158]]]
- ];
使用数组集中record对象的json属性来获取以细节区数据
var data=r.json[3];
2 在rowExpander的 expand事件中添加嵌套表格.
ExtJS中实现嵌套表格的更多相关文章
- Ext3.4-EXT之嵌套表格的实现
其中使用到的"RowExpander.js"为extjs官方示例中自带的. 实现这个嵌套表格要注意两点技巧: 1 提供给外层表格的dataStore的数据源以嵌套数组的形式表示细节 ...
- C# 绘制PDF嵌套表格
嵌套表格,即在一张表格中的特定单元格中再插入一个或者多个表格,使用嵌套表格的优点在于能够让内容的布局更加合理,同时也方便程序套用.下面的示例中,将介绍如何通过C#编程来演示如何插入嵌套表格到PDF文档 ...
- Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行
本文将对如何在Java程序中操作Word表格作进一步介绍.操作要点包括 如何在Word中创建嵌套表格. 对已有表格添加行或者列 复制已有表格中的指定行或者列 对跨页的表格可设置是否禁止跨页断行 创建表 ...
- 跟我一起玩转FineUI之嵌套表格
最近一直在研究FineUI(http://www.fineui.com/),那么什么是FineUI呢,FineUI是基于 ExtJS 的专业 ASP.NET 控件库.创建 No JavaScript, ...
- EXTJS中grid的数据特殊显示,不同窗口的数据传递
//EXTJS中grid的数据特殊显示renderer : function(value, metaData, record, rowIndex, colIndex, store, view) { v ...
- 转: ExtJS中xtype一览
转: ExtJS中xtype一览 基本组件: xtype Class 描述 button Ext.Button 按钮 splitbutton Ext.SplitButton 带下拉菜单的按钮 cycl ...
- 小细节--Extjs中,renderTo 和applyTo的区别
说到web前端框架,extjs绝对算是非常优秀的一个. extjs中,两个方法很像,renderTo和applyTo,我在网上也搜了很多相关的内容,在这里举例为大家进行区分,欢迎大家交流指正. 主要区 ...
- 【JS中循环嵌套常见的六大经典例题+六大图形题,你知道哪几个?】
首先,了解一下循环嵌套的特点:外层循环转一次,内层循环转一圈. 在上一篇随笔中详细介绍了JS中的分支结构和循环结构,我们来简单的回顾一下For循环结构: 1.for循环有三个表达式,分别为: ①定义循 ...
- kotlin中的嵌套类与内部类
Java中的内部类和静态内部类在Java中内部类简言之就是在一个类的内部定义的另一个类.当然在如果这个内部类被static修饰符修饰,那就是一个静态内部类.关于内部类 和静态内部类除了修饰符的区别之外 ...
随机推荐
- FileZilla 配置备份与还原【转】
FileZilla是一款免费开源的FTP软件,安装和配置都很简单.在安装目录下的FileZilla Server Interface.xml和FileZilla Server.xml两个文件是程序的配 ...
- selenium只打开一个浏览器窗口
from selenium.webdriver import Remote from selenium.webdriver.chrome import options from selenium.co ...
- linux下使用privoxy将socks转为http代理
此博客不在更新,我的博客新地址:www.liuquanhao.com ----------------------------------------------------------------- ...
- 垃圾回收算法与 JVM 垃圾回收器综述(转)
垃圾回收算法与 JVM 垃圾回收器综述 我们常说的垃圾回收算法可以分为两部分:对象的查找算法与真正的回收方法.不同回收器的实现细节各有不同,但总的来说基本所有的回收器都会关注如下两个方面:找出所有的存 ...
- Percona XtraDB Cluster(PXC) -集群环境安装
Percona XtraDB Cluster(PXC) ---服务安装篇 1.测试环境搭建: Ip 角色 OS PXC-version 172.16.40.201 Node1 Redhat/C ...
- CSU 1240 低调,低调。
原题链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1240 这道题已经做了很久了,加入给足够大的内存,谁都会做. 在一个数列中找一个只出现一次 ...
- js实现动态数字时钟
1.效果如下 2.html部分 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...
- java SE :文件基本处理 File、FileFilter、FileNameFilter
File 对目录及文件的创建.重命名.删除.文件列表.判断是否存在 构造函数 // 完整的目录或文件路径 public File(String pathname) //父级目录/文件路径+子级目 ...
- 【WPF】WriteableBitmap和BitmapImage的相互转换
public BitmapImage ConvertWriteableBitmapToBitmapImage(WriteableBitmap wbm) { BitmapImage bmImage = ...
- 【SQL SERVER】触发器(二)
前言:上面一片文章整理了触发器的基础知识点,下面我们看看如何使用触发器以及insert和delete表: 这里我们补充一下触发器的缺点: 性能较低.我们在运行触发器时,系统处理的大部分时间花费在参照其 ...