datagrid进阶——subGrid讲解

subGrid,也就是datagrid中再套一层datagrid,比较适合用于显示一些带有层次的数据,比如要显示一批订单,订单包含具体的货物。这样一个需求,就可以用到subGrid。

我们可以先看看官网上subGrid的样子来增强一下视觉上的感觉。

如何来实现呢?若只是用来显示一下数据,其实还是简单的。

看看demo的代码量也不过区区几十行,跟上思路很容易就可以理解了。

        $(function(){
            $('#dg').datagrid({
                view: detailview,
                detailFormatter:function(index,row){
                    return '<div style="padding:2px"><table class="ddv"></table></div>';
                },
                onExpandRow: function(index,row){
                    var ddv = $(this).datagrid('getRowDetail',index).find('table.ddv');
                    ddv.datagrid({
                        url:'datagrid22_getdetail.php?itemid='+row.itemid,
                        fitColumns:true,
                        singleSelect:true,
                        rownumbers:true,
                        loadMsg:'',
                        height:'auto',
                        columns:[[
                            {field:'orderid',title:'Order ID',width:200},
                            {field:'quantity',title:'Quantity',width:100,align:'right'},
                            {field:'unitprice',title:'Unit Price',width:100,align:'right'}
                        ]],
                        onResize:function(){
                            $('#dg').datagrid('fixDetailRowHeight',index);
                        },
                        onLoadSuccess:function(){
                            setTimeout(function(){
                                $('#dg').datagrid('fixDetailRowHeight',index);
                            },0);
                        }
                    });
                    $('#dg').datagrid('fixDetailRowHeight',index);
                }
            });
        });

1、使用这个subGrid的视图,需要使用到官网提供的datagrid-detailview.js,其中帮我们定义好了detailView这种显示视图。

在使用过程中,我们只需要在主datagrid中将默认的view用detailView替换掉就可以了。

2、detailFormatter,也就是生成的detail中的初始代码,这里放入一个table,之后可以将其动态创建成datagrid。

3、当主datagrid刚刚初始化完成时,并不显示subGrid,此时subGrid并没有存在的必要,我们也不去创建它。

那什么时候去创建它呢?当我们展开主datagrid中的某条数据的时候,也就是在onExpandRow事件中,才去创建一个它“管辖”的subGrid。

4、创建subGrid的方法和一般创建datagrid的方式差不多,但是后面多了一些fixDetailRowHeight的操作

fixDetailRowHeight这个方法主要是为了调整subGrid的高度用的,如若不加,可能会造成subGrid的高度会出现错位的情况。

不过这里setTimeout的时间为0,那和直接调用function又有什么区别呢?

时间: 2024-10-26 10:14:34

datagrid进阶——subGrid讲解的相关文章

subGrid实现内外datagrid都可编辑功能

前一篇文章介绍了如何创建一个拥有subGrid的datagrid,不过仅仅是展示数据,并未涉及到编辑 那么,若是需要subGrid实现可编辑功能该怎么做呢? 要解决这个问题首先得有一个清晰的思路和明确的目标,到底需要将subGrid打造成怎么样呢? 还是用一个具体的例子来说明问题,就拿最近在做的项目来看吧,有一个需求是这样的: 1.显示所有派去维修的记录(一人一条),且每条记录有一些费用数据 2.每条派工记录中有详细的耗材记录 3.耗材要有添加修改删除的功能 这其实就是典型的"一条记录头,下面多

React Native专题文章讲解,不断更新中.....

转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50633488 本文出自:[江清清的博客] 本React Native讲解专题:主要讲解了React Native开发,由基础环境搭建配置入门,基础,进阶相关讲解. 关于React Native各种疑难杂症,问题深坑总结方案请点击查看: Mac和Windows安装搭建React Native环境教程如下: Mac OS X版本:Mac OS X安装React Nati

React Native专题-江清清

本React Native讲解专题:主要讲解了React Native开发,由基础环境搭建配置入门,基础,进阶相关讲解. 刚创建的React Native交流8群:533435865  欢迎各位大牛,React Native技术爱好者加入交流!同时博客右侧欢迎微信扫描关注订阅号,移动技术干货,精彩文章技术推送! 关于React Native各种疑难杂症,问题深坑总结方案请点击查看: Mac和Windows安装搭建React Native环境教程如下: Mac OS X版本:Mac OS X安装R

easyui视频教程

视频目录: sypro示例程序(springMvc+hibernate4+easyui) sshe示例程序(struts2+spring3+hibernate4+easyui)(Maven构建) easyui1.2.6整站文件.zip jquery1.7.2中文API修正版.chm jquery.easyui-1.2.5源码未压缩版.rar jquery-easyui-1.2.6.zip JQuery-esqyUI中文-1.2.5API.CHM 第01课(大概介绍一下easyui,和组织的地址,

(升级版)Spark从入门到精通(Scala编程、案例实战、高级特性、Spark内核源码剖析、Hadoop高端)

本课程主要讲解目前大数据领域最热门.最火爆.最有前景的技术——Spark.在本课程中,会从浅入深,基于大量案例实战,深度剖析和讲解Spark,并且会包含完全从企业真实复杂业务需求中抽取出的案例实战.课程会涵盖Scala编程详解.Spark核心编程.Spark SQL和Spark Streaming.Spark内核以及源码剖析.性能调优.企业级案例实战等部分.完全从零起步,让学员可以一站式精通Spark企业级大数据开发,提升自己的职场竞争力,实现更好的升职或者跳槽,或者从j2ee等传统软件开发工程

WSFC2016 跨站点运行状况检测

之前在WSFC基础知识奠基篇曾经为大家介绍过微软WSFC故障转移的过程,我们来重温一下 1.按照要求部署配置群集节点,确保群集服务器利用了冗余技术消除了服务器,网络,存储的单一故障点 2.保证群集内所有节点都可以访问到共享存储 3.群集应用将应用数据写入到群集共享存储 4.管理员新增节点1服务器上面功能角色,新增完成后节点1服务器群集数据库记录新增的角色功能以及相关联的信息,稍后会把信息同步至其它节点2,及群集仲裁磁盘 5.群集节点之间按照预定的心跳检测频率进行全网握手检测 6.节点1出现故障服

写在最前面 - 《看懂每一行代码 - kubernetes》

我要写什么 <看懂每一行代码 - kubernetes>会包含k8s整个项目的源码解析,考虑到门槛问题,在开始分析k8s之前我会通过一些更低难度的golang开源项目讲解来帮助大家提升golang编码技能:然后通过与k8s相关的一些项目的讲解,打通阻碍k8s学习的一些大障碍:最后集中火力,将kubernetes项目的整个源码吃透. 总体来说,本系列计划分三步走完成源码层面掌握k8s的目标: golang技能提升 k8s依赖技术 k8s核心组件 目前关于k8s应用的教程已经很多了,其中不乏相当优

OpenCV3编程入门_毛星云编著pdf高清版免费下载

下载地址:网盘下载 备用地址:网盘下载 内容提要OpenCV在计算机视觉领域扮演着重要的角色.作为一个基于开源发行的跨平台计算机视觉库,OpenCV实现了图像处理和计算机视觉方面的很多通用算法.<OpenCV3编程入门>以当前最新版本的OpenCV最常用最核心的组件模块为索引,深入浅出地介绍了OpenCV2和OpenCV3中的强大功能.性能,以及新特性.书本配套的OpenCV2和OpenCV3双版本的示例代码包中,含有总计两百多个详细注释的程序源代码与思路说明.读者可以按图索骥,按技术方向进行

JQuery EasyUI入门视频教程

下载地址:百度网盘下载 课程目录( G  I4 H5M  I   第01课(大概介绍一下easyui,和组织的地址,官方网站等)   第02课(介绍easyloader组件和easyui怎样使用)   第03课(parser组件panel组件)   第04课(通过用户登录来演示dialog.ajax的使用,serialize方法的使用,前后台怎样交互等)4 L( N& Z7 J; j( B6 V   第05课(讲解easyui的form控件.validatebox控件.怎样跟后台交互)   第0