EasyUI折叠表格层次显示detailview详解及实例

本文目的:

使用easyUi的特殊常用实例,表格层次显示,一层套一层,显示详细数据,嵌套3层应该可以满足所有人的需求了吧。如果你想嵌套4层,有了嵌套3层的案例,4层,5层不是问题吧!!!

本实例的特点:

1.当数据很多的时候,高度不能自动适应,会在表格右侧出现滚动条,想这样嵌套3层的后果,简直不忍直视,本实例高度自适应。

2.选中行后,不能清除选中效果,本实例是可以的。

3.当打开数据展示详情后,再关闭详情页后,不能高度自适应,本实例关闭表格依然自适应。

4.当数据太多,需要出现横向滚动,本实例已给出详细案例。

首先一张图片,展示效果,是否和自己的预期一致。

本实例的下载地址:http://download.csdn.net/detail/meng564764406/9723582

实例内容,包含了源代码,包含了所要使用js、css、图片文件。

下面开始引入我们需要的css文件

<link rel="stylesheet" type="text/css" href="jquery-easyui-1.3.5/themes/icon.css" />
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.3.5/themes/gray/easyui.css" /> 

下面引入我们需要的js文件

<script type="text/javascript" src="js/jquery/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="jquery-easyui-1.3.5/jquery-1.3.5.easyui.min.js"></script>
<script type="text/javascript" src="js/jquery/datagrid-detailview.js" charset="utf-8"></script> 

查看我们的body标签中的代码

<table id="dg"
 url="json/datagrid_data.json"
 title="收款管理"
 singleSelect="false" fitColumns="true">
 <thead>
 <tr>
  <th field="inv" width="80">部门</th>
  <th field="date" width="100">日期</th>
  <th field="name" align="right" width="80">名字</th>
  <th field="amount" align="right" width="80">数量</th>
  <th field="note" width="220">小计</th>
 </tr>
 </thead>
</table>

我们自己编写的js代码

<script type="text/javascript">
 $(function(){
 $('#dg').datagrid({
  view: detailview,
  detailFormatter:function(index,row){//严重注意喔
  return '<div"><table id="ddv-' + index + '" ></table></div>';
  },
  onExpandRow: function(index,row){//嵌套第一层,严重注意喔
  var ddv = $(this).datagrid('getRowDetail',index).find('#ddv-'+index);//严重注意喔
  ddv.datagrid({
   view: detailview,
   url:'json/datagrid_data.json',
   autoRowHeight:true,
   fitColumns:true,//改变横向滚动条
   singleSelect:false,//去掉选中效果
   rownumbers:true,
   loadMsg:'',
//   height:'auto',
   columns:[[
   {field:'inv',title:'年份',width:100},
   {field:'date',title:'应收',width:100},
   {field:'name',title:'合同款',width:100},
   {field:'amount',title:'已收',width:100},
   {field:'note',title:'比例',width:100}
   ]],
   detailFormatter:function(index,row2){//严重注意喔
   return '<div"><table id="ddv2-' + index + '" style=""></table></div>';
   },
   onExpandRow: function(index2,row2){//嵌套第二层,严重注意喔
   var ddv2 = $(this).datagrid('getRowDetail',index2).find('#ddv2-'+index2);//严重注意喔
   ddv2.datagrid({
    view: detailview,
    url:'json/datagrid_data.json',
    autoRowHeight:true,
    fitColumns:true,
    singleSelect:false,
    rownumbers:true,
    loadMsg:'',
//    height:'auto',
    columns:[[
    {field:'inv',title:'月份',width:100},
    {field:'date',title:'应收',width:100,align:'right'},
    {field:'name',title:'合同款',width:100,align:'right'},
    {field:'amount',title:'已收',width:100,align:'right'},
    {field:'note',title:'比例',width:100,align:'right'}
    ]],
    detailFormatter:function(index2,row3){//严重注意喔
    return '<div"><table id="ddv3-' + index2 + '" style=""></table></div>';
    },
    onExpandRow: function(index3,row3){//嵌套第三层,严重注意喔
    var ddv3 = $(this).datagrid('getRowDetail',index3).find('#ddv3-'+index3);//严重注意喔
    ddv3.datagrid({//严重注意喔 这里没有detailview了哈
     url:'json/datagrid_data3.json',
     autoRowHeight:true,
     fitColumns:false,//
     singleSelect:false,
     rownumbers:true,
     loadMsg:'',
//     height:'auto',
     columns:[[
     {field:'aaa',title:'项目名称',width:100},
     {field:'bbb',title:'合同编号',width:100,align:'right'},
     {field:'ccc',title:'合同名称',width:100,align:'right'},
     {field:'ddd',title:'款数',width:100,align:'right'},
     {field:'eee',title:'技术负责人',width:50,align:'right'},
     {field:'fff',title:'条件具备日期',width:100,align:'right'},
     {field:'ggg',title:'销售',width:50,align:'right'},
     {field:'hhh',title:'收款计划日期',width:100,align:'right'},
     {field:'iii',title:'计划收款比例',width:100,align:'right'},
     {field:'jjj',title:'实际收款比例',width:100,align:'right'},
     {field:'kkk',title:'差距',width:80,align:'right'},
     {field:'lll',title:'销售说明',width:100,align:'right'},
   <span style="white-space:pre"> </span>  {field:'mmm',title:'收款金额',width:100,align:'right'},
     {field:'nnn',title:'详情',width:100,align:'right'}
     ]],
     detailFormatter:function(index3,row){//严重注意喔
     return '<div style="padding:2px"><table id="ddv3-' + index3 + '"></table></div>';//严重注意喔
     },
     onResize:function(){//严重注意喔
     ddv2.datagrid('fixDetailRowHeight',index3);
      ddv.datagrid('fixDetailRowHeight',index2);
     $('#dg').datagrid('fixDetailRowHeight',index);
     },
     onLoadSuccess:function(){
     setTimeout(function(){//严重注意喔
      ddv2.datagrid('fixDetailRowHeight',index3);
      ddv2.datagrid('fixRowHeight',index3);
      ddv.datagrid('fixDetailRowHeight',index2);
      ddv.datagrid('fixRowHeight',index2);
      $('#dg').datagrid('fixDetailRowHeight',index);
      $('#dg').datagrid('fixRowHeight',index);
     },0);
     }
    });//严重注意喔
    ddv2.datagrid('fixDetailRowHeight',index);
    ddv.datagrid('fixDetailRowHeight',index);
    $('#dg').datagrid('fixDetailRowHeight',index);
    },
    onCollapseRow: function(index3,row3){//严重注意喔
    var ddv3 = $(this).datagrid('getRowDetail',index3).find('#ddv3-'+index3);
    ddv3.datagrid({
     onResize:function(){
     ddv2.datagrid('fixDetailRowHeight',index3);
    <span style="white-space:pre"> </span> ddv.datagrid('fixDetailRowHeight',index2);
      $('#dg').datagrid('fixDetailRowHeight',index);
     }
    });//严重注意喔
    ddv2.datagrid('fixDetailRowHeight',index);
    ddv.datagrid('fixDetailRowHeight',index);
    $('#dg').datagrid('fixDetailRowHeight',index);
    },
    onResize:function(){//严重注意喔
    ddv.datagrid('fixDetailRowHeight',index2);
    $('#dg').datagrid('fixDetailRowHeight',index);
    },
    onLoadSuccess:function(){//严重注意喔
    setTimeout(function(){
     ddv.datagrid('fixDetailRowHeight',index2);
     ddv.datagrid('fixRowHeight',index2);
     $('#dg').datagrid('fixDetailRowHeight',index);
     $('#dg').datagrid('fixRowHeight',index);
    },0);
    }
   });//严重注意喔
   ddv.datagrid('fixDetailRowHeight',index2);
   $('#dg').datagrid('fixDetailRowHeight',index);
   },
   onCollapseRow: function(index2,row2){//严重注意喔
   var ddv2 = $(this).datagrid('getRowDetail',index2).find('#ddv2-'+index2);
   ddv2.datagrid({
    onResize:function(){
    ddv.datagrid('fixDetailRowHeight',index2);
    $('#dg').datagrid('fixDetailRowHeight',index);
    }
   });//严重注意喔
   ddv.datagrid('fixDetailRowHeight',index2);
   $('#dg').datagrid('fixDetailRowHeight',index);
   },
   onResize:function(){
   $('#dg').datagrid('fixDetailRowHeight',index);
   },
   onLoadSuccess:function(){
   setTimeout(function(){
    $('#dg').datagrid('fixDetailRowHeight',index);
    $('#dg').datagrid('fixRowHeight',index);
   },0);
   }
  });
  $('#dg').datagrid('fixDetailRowHeight',index);
  }
 });
 });
</script> 

以上所述是小编给大家介绍的EasyUI折叠表格层次显示detailview详解及实例,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Jquery组件easyUi实现手风琴(折叠面板)示例

    本文是为大家分享了Jquery easyUi手风琴效果,供大家参考,具体内容如下 效果图: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Basic Accordion - jQuery EasyUI Demo</title> <link rel="stylesheet" type="text/css&qu

  • 在ASP.NET 2.0中操作数据之十:使用 GridView和DetailView实现的主/从报表

    导言 在前面的教程我们看到了如何使用两个页面(一个主页,用于列出供应商; 一个明细页,用于显示选定供应商提供的产品)创建主/从报表 . 这种两个页面的报表格式也可以集中在一个页面上. 这篇教程将会使用一个GridView, 它的每一行都包含产品的名称和单价以及一个选择按钮. 单击一个产品的选择按钮会在同一页的DetailsView控件上显示该产品的全部详细信息. 图 1: 单击选择按钮显示产品明细 Step 1: 创建一个可选择行的GridView 回想一下前面的跨页的主/从报表, 它的每个主记

  • jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法

    在上篇文章给大家介绍了jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单 先上代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title&g

  • jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单

    先给大家看下效果图,效果图展示如下: 关键代码如下所示: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>首页</title> &l

  • EasyUI折叠表格层次显示detailview详解及实例

    本文目的: 使用easyUi的特殊常用实例,表格层次显示,一层套一层,显示详细数据,嵌套3层应该可以满足所有人的需求了吧.如果你想嵌套4层,有了嵌套3层的案例,4层,5层不是问题吧!!! 本实例的特点: 1.当数据很多的时候,高度不能自动适应,会在表格右侧出现滚动条,想这样嵌套3层的后果,简直不忍直视,本实例高度自适应. 2.选中行后,不能清除选中效果,本实例是可以的. 3.当打开数据展示详情后,再关闭详情页后,不能高度自适应,本实例关闭表格依然自适应. 4.当数据太多,需要出现横向滚动,本实例

  • SSM框架整合JSP中集成easyui前端ui项目开发示例详解

    目录 前言 EasyUI下载与配置 页面美化 运行结果 总结与问题 前言 前端的UI框架很多,如bootsrap.layui.easyui等,这些框架提供了大量控件供开发人员使用,我们无需花费太大的精力,使得我们的页面具有专业标准,使用起来也很简单.所有的前端框架使用方式基本上大同小异,以下使用easyui作为UI框架做一演示,个人认为easyui提供的控件比较好看. EasyUI下载与配置 使用EasyUI,必须下载其js包,下载官网地址:https://www.jeasyui.cn/ 下载j

  • JS 实现计算器详解及实例代码(一)

    Javascript 实现计算器: 系列文章: JS 实现计算器详解及实例代码(一) Javascript 实现计算器时间功能详解及实例(二) 小型JavaScript计算器 自己寻思出的解决方案,比较笨拙的方法,虽然完成了但是还有不少bug,用的方法也不是最有效的,基本功能算是完成了,一些小的细节地方也考虑到了,但是还有其他的细节需要处理. 总体设计思路是,先画草图 -> 设计UI -> 编写UI代码 -> 编写CSS -> 编写JS逻辑代码: 面板(main-board) 面板

  • Java NumberFormat 类的详解及实例

     Java NumberFormat 类的详解及实例 概要: NumberFormat 表示数字的格式化类, 即:可以按照本地的风格习惯进行数字的显示. 此类的定义如下: public abstract class NumberFormat extends Format MessageFormat .DateFormat .NumberFormat 是 Format 三个常用的子类,如果要想进一步完成一个好的国际化程序,则肯定需要同时使用这样三个类完成,根据不同的国家显示贷币的形式. 此类还是在

  • IOS 中UIApplication详解及实例

    IOS 中UIApplication详解及实例 以前刚学iPhone开发时,觉得UIApplication这个东西特NB,特神秘,比如它居然能打开一个URL,而且还是用一个很神秘的方法得到实例: [UIApplication sharedApplication] 它对我的神秘感一直保持到今天下午.今天下午负责UI设计的同事在设计,我没有素材,比较清闲,于是发个狠,专门看了一下UIApplication这个类.果然是难者不会,会者不难,看完之后,这个类的神秘感一下子没了.下面让我来揭开它的神秘面纱

  • Java绘图技术的详解及实例

    Java绘图技术的详解及实例 简单实例 public class Demo1 extends JFrame{ MyPanel mp=null; public static void main(String[] args){ Demo1 demo=new Demo1(); } public Demo1(){ mp=new MyPanel(); this.add(mp); this.setSize(400,300); this.setDefaultCloseOperation(JFrame.EXIT

  • Python 文件操作的详解及实例

    Python 文件操作的详解及实例 一.文件操作 1.对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: 昨夜寒蛩不住鸣. 惊回千里梦,已三更. 起来独自绕阶行. 人悄悄,帘外月胧明. 白首为功名,旧山松竹老,阻归程. 欲将心事付瑶琴. 知音少,弦断有谁听. f = open('小重山') #打开文件 data=f.read()#获取文件内容 f.close() #关闭文件 注意:if in the win,hello文件是utf8保存的,打

  • Javascript 实现计算器时间功能详解及实例(二)

    Javascript 计算器: 系列文章: JS 实现计算器详解及实例代码(一) Javascript 实现计算器时间功能详解及实例(二) Javascript计算器 -> 添加时间在屏显区左上角添加时间显示 效果图如下: 代码 初始化 // 计算器初始化 Calculator.prototype.init = function () { this.addTdClick(); // 时间显示 this.showDate(); }; 时间显示 // 在屏显区左上角显示时间日期 Calculator

  • COM组件中调用JavaScript函数详解及实例

    COM组件中调用JavaScript函数详解及实例 要求是很简单的,即有COM组件A在IE中运行,使用JavaScript(JS)调用A的方法longCalc(),该方法是一个耗时的操作,要求通知IE当前的进度.这就要求使用回调函数,设其名称为scriptCallbackFunc.实现这个技术很简单: 1 .组件方(C++) 组件A 的方法在IDL中定义: [id(2)] HRESULT longCalc([in] DOUBLE v1, [in] DOUBLE v2, [in, optional

  • Spring AOP 基于注解详解及实例代码

    Spring AOP  基于注解详解及实例代码 1.启用spring对@AspectJ注解的支持: <beans xmlns:aop="http://www.springframework.org/schema/aop"...> <!--启动支持--> <aop:aspectj-autoproxy /> </beans> 也可以配置AnnotationAwareAspectJAutoProxyCreator Bean来启动Spring对@

随机推荐