基于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对象。
五、组件使用范例
- <input type="button" value="关闭所有节点" onclick="expandAll('N')">
- <input type="button" value="展开所有节点" onclick="expandAll('Y')">
- <input type="button" value="取得当前行的数据" onclick="selectedItem()"><br>
- 当前选中的行:<input type="text" id="currentRow" size="110">
- <div id="div1"></div>
- <script language="javascript">
- var config = {
- id: "tg1",
- width: "800",
- renderTo: "div1",
- headerAlign: "left",
- headerHeight: "30",
- dataAlign: "left",
- indentation: "20",
- folderOpenIcon: "images/folderOpen.gif",
- folderCloseIcon: "images/folderClose.gif",
- defaultLeafIcon: "images/defaultLeaf.gif",
- hoverRowBackground: "false",
- folderColumnIndex: "1",
- itemClick: "itemClickEvent",
- expandLayer: 1,
- columns:[
- {headerText: "", headerAlign: "center", dataAlign: "center", width: "20", handler: "customCheckBox"},
- {headerText: "名称", dataField: "name", headerAlign: "center", handler: "customOrgName"},
- {headerText: "拼音码", dataField: "code", headerAlign: "center", dataAlign: "center", width: "100"},
- {headerText: "负责人", dataField: "assignee", headerAlign: "center", dataAlign: "center", width: "100"},
- {headerText: "查看", headerAlign: "center", dataAlign: "center", width: "50", handler: "customLook", folderHidden: true}
- ],
- data:[
- {name: "城区分公司", code: "CQ", assignee: "", children:[
- {name: "城区卡品分销中心"},
- {name: "先锋服务厅", children:[
- {name: "chlid1"},
- {name: "chlid2"},
- {name: "chlid3", children: [
- {name: "chlid3-1"},
- {name: "chlid3-2"},
- {name: "chlid3-3"},
- {name: "chlid3-4"}
- ]}
- ]},
- {name: "半环服务厅"}
- ]},
- {name: "清新分公司", code: "QX", assignee: "", children:[]},
- {name: "英德分公司", code: "YD", assignee: "", children:[]},
- {name: "佛冈分公司", code: "FG", assignee: "", children:[]}
- ]
- };
- /*
- 单击数据行后触发该事件
- id:行的id
- index:行的索引。
- data:json格式的行数据对象。
- */
- function itemClickEvent(id, index, data){
- jQuery("#currentRow").val(id + ", " + index + ", " + TreeGrid.json2str(data));
- }
- /*
- 通过指定的方法来自定义栏数据
- */
- function customCheckBox(row, col){
- return "<input type='checkbox'>";
- }
- function customOrgName(row, col){
- var name = row[col.dataField] || "";
- return name;
- }
- function customLook(row, col){
- return "<a href='' style='color:blue;'>查看</a>";
- }
- //创建一个组件对象
- var treeGrid = new TreeGrid(config);
- treeGrid.show();
- /*
- 展开、关闭所有节点。
- isOpen=Y表示展开,isOpen=N表示关闭
- */
- function expandAll(isOpen){
- treeGrid.expandAll(isOpen);
- }
- /*
- 取得当前选中的行,方法返回TreeGridItem对象
- */
- function selectedItem(){
- var treeGridItem = treeGrid.getSelectedItem();
- if(treeGridItem!=null){
- //获取数据行属性值
- //alert(treeGridItem.id + ", " + treeGridItem.index + ", " + treeGridItem.data.name);
- //获取父数据行
- var parent = treeGridItem.getParent();
- if(parent!=null){
- //jQuery("#currentRow").val(parent.data.name);
- }
- //获取子数据行集
- var children = treeGridItem.getChildren();
- if(children!=null && children.length>0){
- jQuery("#currentRow").val(children[0].data.name);
- }
- }
- }
- </script>

基于jQuery的TreeGrid组件详解的更多相关文章
- 基于jQuery的TreeGrid组件
/** * @author 陈举民 * @version 1.0 * @link http://chenjumin.iteye.com/blog/419522 */ TreeGrid = functi ...
- 触碰jQuery:AJAX异步详解
触碰jQuery:AJAX异步详解 传送门:异步编程系列目录…… 示例源码:触碰jQuery:AJAX异步详解.rar AJAX 全称 Asynchronous JavaScript and XML( ...
- jQuery调用AJAX异步详解[转]
AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).它并非一种新的技术,而是以下几种原有技术的结合体. 1) 使用CSS和X ...
- 触碰jQuery:AJAX异步详解(转)
AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).它并非一种新的技术,而是以下几种原有技术的结合体. 1) 使用CSS和X ...
- OpenStack各组件详解和通信流程
一.openstack由来 openstack最早由美国国家航空航天局NASA研发的Nova和Rackspace研发的swift组成.后来以apache许可证授权,旨在为公共及私有云平台建设.open ...
- Tomcat系列之服务器的安装与配置以及各组件详解
Tomcat系列之服务器的安装与配置以及各组件详解 大纲 一.前言 二.安装与配置Tomcat 三.Tomcat 目录的结构 四.Tomcat 配置文件 注,本文的测试的操作系统为CentOS 6.4 ...
- Tomcat负载均衡、调优核心应用进阶学习笔记(一):tomcat文件目录、页面、架构组件详解、tomcat运行方式、组件介绍、tomcat管理
文章目录 tomcat文件目录 bin conf lib logs temp webapps work 页面 架构组件详解 tomcat运行方式 组件介绍 tomcat管理 tomcat文件目录 ➜ ...
- OpenStack的Swift组件详解
一:简介 一.背景 1. Swift 最初是由 Rackspace 公司开发的高可用分布式对象存储服务(Object Storage Service),并于 2010 年贡献给 OpenSt ...
- OpenStack的Trove组件详解
一:简介 一.背景 1. 对于公有云计算平台来说,只有计算.网络与存储这三大服务往往是不太够的,在目前互联网应用百花齐放的背景下,几乎所有应用都使用到数据库,而数据库承载的往往是应用最核心的数 ...
随机推荐
- 解决IE6下固定定位问题 使用position:fixed
IE6浏览器有太多的bug让制作网页的人头疼.这篇文章介绍的是介绍的是如何解决IE6不支持position:fixed;属性的办法. 如果我们需要做某个元素始终位于浏览器的底部,不会因为浏览器窗口的缩 ...
- MongoDB如何存储数据
想要深入了解MongoDB如何存储数据之前,有一个概念必须清楚,那就是Memeory-Mapped Files. Memeory-Mapped Files 下图展示了数据库是如何跟底层系统打交道的. ...
- 【WinForm】“System.Data.SqlClient.SqlConnection”的类型初始值设定项引发异常,无法识别的配置节 system.serviceModel
出现问题的原因: 在本机上没有出现问题,让一个同事测试的时候,在另外一台电脑上出现连接数据库失败,系统不能打开的问题 在网上搜了一下,有说是数据库连接字符串错误的,有说app.config文件配置不匹 ...
- WebApp遇到的一些坑
一.关于js 1. 引用zepto.js时,借用插件swipe时,写的滑动加载,在ios上可以实行滑动加载数据,但是在安卓上,就是不能滑动: 注: 在使用插件的时候,要先注意其兼容性问题. 2. 用j ...
- Mongodb学习教程汇总
1.MongoDB权威指南 - 学习笔记 地址:http://www.cnblogs.com/refactor/category/394801.html 2.8天学通MongoDB 地址:http:/ ...
- Android API Level与sdk版本对照表
API等级1: Android 1.0 API等级2: Android 1.1 Petit Four 花式小蛋糕 API等级3: Android 1.5 Cupcake 纸杯蛋糕 API等级4: An ...
- 用JavaScript刷新框架子页面的七种方法
下面以三个页面分别命名为framedemo.html,top.html,button.html为例来具体说明如何做. 其中framedemo.html由上下两个页面组成,代码如下: < !DOC ...
- MySQL实战积累
IFNULL(expr1,expr2)的用法:假如expr1不为NULL,则IFNULL()的返回值为 expr1; 否则其返回值为expr2. 索引:http://www.cnblogs.com ...
- 1105. Spiral Matrix (25)
This time your job is to fill a sequence of N positive integers into a spiral matrix in non-increasi ...
- FastLoad错误 — RDBMS error 2634
我们来看一下下面这条语句: BEGIN LOADING stu_flERRORFILES error_1, error_2; 如果此时已经存在error_1或error_2表,那么将会报错,信息如 ...