jQuery MiniUI

标题: 分享内嵌子表格 showAllRowDetail展开显示所有行详细的需求实现 [打印本页]

作者: 479640004    时间: 2018-6-29 22:29:21     标题: 分享内嵌子表格 showAllRowDetail展开显示所有行详细的需求实现

本帖最后由 479640004 于 2018-6-29 22:39 编辑

今天碰到了一个需求是页面加载后内嵌表格需要全部展开并显示出数据,参考了一下别人实现的代码,最后自己研究了出来,分享一下希望可以帮到有同样需求的朋友。

下面是页面代码:

  1. <h1>Inline DetailGrid 内嵌子表格</h1>

  2. <div id="dept_grid" class="mini-datagrid" style="width: 700px; height: auto;"
  3.     allowresize="true"
  4.     url="../data/AjaxService.aspx?method=GetDepartments" idfield="id"
  5.     autohiderowdetail="false">
  6.     <div property="columns">
  7.         <div type="expandcolumn">#</div>
  8.         <div field="id" width="80" headeralign="center">ID</div>
  9.         <div field="name" width="320" headeralign="left">部门名称</div>
  10.     </div>
  11. </div>

  12. <div id="detailGrid_Form" style="display: none;">
  13.     <div id="employee_grid" class="mini-datagrid" style="width: 100%; height: 150px;"
  14.         url="../data/AjaxService.aspx?method=GetDepartmentEmployees">
  15.         <div property="columns">
  16.             <div field="loginname" width="120" headeralign="center" allowsort="true">
  17.                 员工帐号
  18.                     <input property="editor" class="mini-textbox" />
  19.             </div>
  20.             <div field="gender" width="100" allowsort="true" renderer="onGenderRenderer"
  21.                 align="center" headeralign="center">
  22.                 性别
  23.             </div>
  24.             <div field="age" width="100" allowsort="true">
  25.                 年龄
  26.             </div>
  27.             <div field="birthday" width="100" allowsort="true" dateformat="yyyy-MM-dd">
  28.                 出生日期
  29.             </div>
  30.             <div field="createtime" width="100" headeralign="center" dateformat="yyyy-MM-dd" allowsort="true">
  31.                 创建日期
  32.             </div>
  33.         </div>
  34.     </div>
  35. </div>
复制代码
JS代码:
[attach]11037[/attach]



首先需要对主表设置 onshowrowdetail 事件,onupdate 事件,autohiderowdetail 属性。

onshowrowdetail 事件用来实现加载行详细信息。

onupdate 事件用来让表格渲染完毕后执行主表 showAllRowDetail 显示所有行详细。(注:不能用onload事件来执行显示所有行详细方法,因为仅仅是数据加载完了表格却没有加载完,在执行getRowDetailCellEl 获取行详细DOM对象 的时候会出错)

autohiderowdetail 属性设置为 false ,这样展开详细行时就不会自动隐藏其他详细行,默认为true。


因为每行都需要显示和加载表格数据所以不用已经在HTML写好的子表,而是通过JS的方式创建一个子表并绑定到每行中。



作者: felt    时间: 2018-7-2 11:03:38

[attach]11043[/attach]
可以参考一下这个示例







欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2