jQuery TreeGrid

一、TreeGrid组件相关的类

1、TreeGrid(_config)

_config:json格式的数据,组件所需要的数据都通过该参数提供。

2、TreeGridItem(_root, _rowId, _rowIndex, _rowData)

_root:显示组件实例的目标容器对象。

_rowId:选中行的id。

_rowIndex:选中行的索引。

_rowData:json格式的行数据。

二、_config参数详解

id:组件实例的id。

width:组件实例的宽度。

renderTo:用于显示组件实例的容器对象的id。一般用div作为容器。

headerAlign:标题行的对齐方式。

headerHeight:标题行的高度。

dataAlign:数据行的对齐方式。

indentation:层级缩进量。

folderColumnIndex:显示图标的数据列的索引,从0开始。

folderOpenIcon:节点展开时的图标。

folderCloseIcon:节点关闭时的图标。

defaultLeafIcon:叶节点的图标。

hoverRowBackground:鼠标滑过数据行时,背景色是否改变。

itemClick:单击数据行后触发的事件。事件方法包含三个参数,分别是:行的id、行的索引、行数据。

expandLayer:初始展开层数,默认只展开第1层。

columns:值为数组,数组元素为json对象。定义数据栏相关信息。

数组元素的属性:

headerText:栏的标题。

dataField:栏数据对应的字段名。

headerAlign:栏头对齐方式。

dataAlign:栏数据对齐方式。

width:栏的宽度。

handler:通过指定的方法来自定义栏数据。

folderHidden:在文件夹行隐藏单元格值。

data:组件的数据集。

三、TreeGrid的方法

show:显示填充数据后的组件对象。

expandAll:展开、关闭所有节点。该方法有一个参数,参数值为Y时表示展开,参数值为N时表示关闭。

getSelectedItem:获取当前选中的数据行,返回TreeGridItem对象。

四、TreeGridItem组件

1、组件属性

id:数据行的id。

index:数据行的索引。

data:json格式的行数据。

2、组件方法

getParent:获取父数据行。方法返回TreeGridItem对象。

getChildren:获取子数据行集。方法返回一个数组,数组元素为TreeGridItem对象。

五、组件使用范例

Html代码  

  1. <input type="button" value="关闭所有节点" onclick="expandAll(‘N‘)">
  2. <input type="button" value="展开所有节点" onclick="expandAll(‘Y‘)">
  3. <input type="button" value="取得当前行的数据" onclick="selectedItem()"><br>
  4. 当前选中的行:<input type="text" id="currentRow" size="110">
  5. <div id="div1"></div>

Js代码  

  1. <script language="javascript">
  2. var config = {
  3. id: "tg1",
  4. width: "800",
  5. renderTo: "div1",
  6. headerAlign: "left",
  7. headerHeight: "30",
  8. dataAlign: "left",
  9. indentation: "20",
  10. folderOpenIcon: "images/folderOpen.gif",
  11. folderCloseIcon: "images/folderClose.gif",
  12. defaultLeafIcon: "images/defaultLeaf.gif",
  13. hoverRowBackground: "false",
  14. folderColumnIndex: "1",
  15. itemClick: "itemClickEvent",
  16. expandLayer: 1,
  17. columns:[
  18. {headerText: "", headerAlign: "center", dataAlign: "center", width: "20", handler: "customCheckBox"},
  19. {headerText: "名称", dataField: "name", headerAlign: "center", handler: "customOrgName"},
  20. {headerText: "拼音码", dataField: "code", headerAlign: "center", dataAlign: "center", width: "100"},
  21. {headerText: "负责人", dataField: "assignee", headerAlign: "center", dataAlign: "center", width: "100"},
  22. {headerText: "查看", headerAlign: "center", dataAlign: "center", width: "50", handler: "customLook", folderHidden: true}
  23. ],
  24. data:[
  25. {name: "城区分公司", code: "CQ", assignee: "", children:[
  26. {name: "城区卡品分销中心"},
  27. {name: "先锋服务厅", children:[
  28. {name: "chlid1"},
  29. {name: "chlid2"},
  30. {name: "chlid3", children: [
  31. {name: "chlid3-1"},
  32. {name: "chlid3-2"},
  33. {name: "chlid3-3"},
  34. {name: "chlid3-4"}
  35. ]}
  36. ]},
  37. {name: "半环服务厅"}
  38. ]},
  39. {name: "清新分公司", code: "QX", assignee: "", children:[]},
  40. {name: "英德分公司", code: "YD", assignee: "", children:[]},
  41. {name: "佛冈分公司", code: "FG", assignee: "", children:[]}
  42. ]
  43. };
  44. /*
  45. 单击数据行后触发该事件
  46. id:行的id
  47. index:行的索引。
  48. data:json格式的行数据对象。
  49. */
  50. function itemClickEvent(id, index, data){
  51. jQuery("#currentRow").val(id + ", " + index + ", " + TreeGrid.json2str(data));
  52. }
  53. /*
  54. 通过指定的方法来自定义栏数据
  55. */
  56. function customCheckBox(row, col){
  57. return "<input type=‘checkbox‘>";
  58. }
  59. function customOrgName(row, col){
  60. var name = row[col.dataField] || "";
  61. return name;
  62. }
  63. function customLook(row, col){
  64. return "<a href=‘‘ style=‘color:blue;‘>查看</a>";
  65. }
  66. //创建一个组件对象
  67. var treeGrid = new TreeGrid(config);
  68. treeGrid.show();
  69. /*
  70. 展开、关闭所有节点。
  71. isOpen=Y表示展开,isOpen=N表示关闭
  72. */
  73. function expandAll(isOpen){
  74. treeGrid.expandAll(isOpen);
  75. }
  76. /*
  77. 取得当前选中的行,方法返回TreeGridItem对象
  78. */
  79. function selectedItem(){
  80. var treeGridItem = treeGrid.getSelectedItem();
  81. if(treeGridItem!=null){
  82. //获取数据行属性值
  83. //alert(treeGridItem.id + ", " + treeGridItem.index + ", " + treeGridItem.data.name);
  84. //获取父数据行
  85. var parent = treeGridItem.getParent();
  86. if(parent!=null){
  87. //jQuery("#currentRow").val(parent.data.name);
  88. }
  89. //获取子数据行集
  90. var children = treeGridItem.getChildren();
  91. if(children!=null && children.length>0){
  92. jQuery("#currentRow").val(children[0].data.name);
  93. }
  94. }
  95. }
  96. </script>

时间: 2024-08-08 10:48:17

jQuery TreeGrid的相关文章

jquery treegrid实例

前台jqurey代码 function organDatagrid(){ $organ_treegrid = $('#organ_treegrid').treegrid({ url:ctx+'/petition/petition-info/organ-datagrid', fit:true, fitColumns:false,//自适应列宽 striped:true,//显示条纹 rownumbers:true,//显示行数 nowrap : false, border : false, sin

Jquery easyui 源代码分析之easyloader

Jquery easyui是一个javascript UI 组件库,使用它可以快速开发企业级的业务系统.如果你正准备开发系统后台,可以选择jquery easyui,也可以选择Ext JS.我个人的看法是,如果开发团队就两三个人,开发工期很短,就一两个月.那么选择jquery easyui就对了,jquery easyui源代码量不多,便于阅读和自行修改.而Ext JSy源代码太多,短时间很难看完,学习曲线也比较陡峭.如果人手充足,时间也富裕,可以考虑使用Ext JS来开发,毕竟Ext JS更强

treegrid.bootstrap使用说明

这个插件是用来做有层次的表格的,大概如图: 官网  http://maxazan.github.io/jquery-treegrid/ 使用这个控件之前需要引入以下css及js(因为用到了 bootstrap.js 所以加上了 bootstrap的样式和脚本) bootstrap.min.css jquery.treegrid.css jquery.min.js bootstrap.min.js jquery.treegrid.js jquery.treegrid.bootstrap3.js 然

(一)jQuery EasyUI 的EasyLoader加载原理

1.第一次看了官网的demo,引用的是EasyLoader.js文件,而不是引用jquery.easyui.min.js文件,我就有疑问了,百度一下. jQuery EasyUI是一款基于JQuery的UI快速搭建组件.EasyLoader是可以动态加载脚本和CSS文件,也可以动态加载EasyUI已有组件,需要引用EasyLoader.js文件,注意:这里就不需要引用jquery.easyui.min.js文件了. 比如需要加载linkbutton组件,则可以用下面的两种方式来加载: 第一种通过

bootstrap treegrid 实现树形表格结构

前言 :最近的项目中需要实现树形表格功能,由于前端框架用的是bootstrap,但是bootstrapTable没有这个功能所以就找了一个前端的treegrid第三方组件进行了封装.现在把这个封装的组件贴出来 大家共同讨论进步. 1 效果图 2 组件下载地址 链接: https://pan.baidu.com/s/1R8jIGXimeJwUcL7WyqZjDA 密码: ud96 3 组件的使用 3.1 在页面中引入如下的文件 <link href="~/Content/bootstrap/

treegrid 表格树

treegrid  实现表格树的结构 效果图: 第一步:页面布局 <div class="col-sm-12 select-table table-striped" style="padding: 30px"> <table id="norm_table"></table> </div> 第二步:引入JS/CSS //js 一般CDN 上都有 <link href="https://

jquery-treegrid树状表格的使用(.Net平台)

上一篇介绍了DataTable,这一篇在DT的基础之上再使用jquery的一款插件:treegrid,官网地址:http://maxazan.github.io/jquery-treegrid/ 一.使用treegrid,需要以下支持 jquery.min.js+jquery.treegrid.min.js 二.后端提供树状列表格式的集合数据,借助前端的DT的配置控制,来在页面上输出满足treegrid格式要求的html 前台: 1 @using Model 2 @{ 3 Layout = nu

封装bootstrap-treegrid组件

封装bootstrap-treegrid组件 阅读目录 一.开源的treegrid 1.组件效果预览 2.组件开源地址 二.封装treegrid 1.组件封装的必要性 2.组件封装代码示例 3.封装后的组件使用 三.总结 正文 前言:最近产品需要设计一套相对完整的组织架构的解决方案,由于组织架构涉及到层级关系,在表格里面展示层级关系,自然就要用到所谓的treegrid.可惜的是,一些轻量级的表格组件本身并没有自带树形表格的功能,比如bootstrapTable就没有这个功能,怎么办呢?如果是jq

EasyUI学习总结(三)——easyloader源码分析

EasyUI学习总结(三)--easyloader源码分析 easyloader模块是用来加载jquery easyui的js和css文件的,而且它可以分析模块的依赖关系,先加载依赖项.模块加载好了会调用parse模块来解析页面.把class是easyui开头的标签都转化成easyui的控件. 先看Demo1例子,再分析源代码. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>easyloader范例</tit