`
raymond.chen
  • 浏览: 1436993 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

基于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>

  

  • 大小: 65.2 KB
24
2
分享到:
评论
20 楼 alexzchen 2015-07-20  
很好很强大,提个建议,tr里的open属性回合h5的open冲突,建议换个名字,比方opened
19 楼 hackerjj 2014-08-22  
张小萍Amy 写道
怎么动态添加父节点,子节点呢?求解释

18 楼 hackerjj 2014-08-22  
请教楼主,如何添加一行数据
17 楼 yutianrui 2014-06-18  
请教一下,为什么这些代码放在vs2012中,运行时展示不出TreeGrid表格呢,而直接运行demo文件就可以
16 楼 xiaoqiang10784 2014-04-11  
很好用的,感谢了。
15 楼 likaiyihou51 2013-12-25  
楼主能给做个数据库取值的例子么,拼data 这个参数 拼不出来
14 楼 bm030 2013-11-11  
sunlea 写道
如果:
1、上边增加title行
2、下边增加数据统计、分页、翻页显示行;
3、fit全屏模式;
4、增加数据行右键菜单功能;
5、后台json异步lazy懒加载
那更加完美。

miniui功能强大界面也很漂亮,但有版权。

13 楼 jindiaojy 2013-10-14  
woweipingzui 写道
解决了...还想知道如何动态给data赋值呢??

12 楼 张小萍Amy 2013-08-27  
怎么动态添加父节点,子节点呢?求解释
11 楼 sunlea 2013-01-26  
如果:
1、上边增加title行
2、下边增加数据统计、分页、翻页显示行;
3、fit全屏模式;
4、增加数据行右键菜单功能;
5、后台json异步lazy懒加载
那更加完美。

miniui功能强大界面也很漂亮,但有版权。
10 楼 sunlea 2013-01-26  
woweipingzui 写道
怎么让他初始化的时候节点就是关闭的呢

找到以下代码:
//创建一个组件对象
var treeGrid = new TreeGrid(config);
treeGrid.show();
//加入下行代码默认全关闭节点
treeGrid.expandAll("N");
9 楼 Coffice 2012-12-07  
我的怎么显示不出treegrid呢?望指点指点。
8 楼 woweipingzui 2012-07-13  
解决了...还想知道如何动态给data赋值呢??
7 楼 woweipingzui 2012-07-13  
怎么让他初始化的时候节点就是关闭的呢
6 楼 hdnlove 2012-03-19  
您好,  我用你的demo  怎么还实现不了 提示TreeGrid 没定义。但我引用TreeGrid.js了 ,在创建对象的时候 就不行。
5 楼 suxinsheng 2012-03-13  
能不能给一个动态从数据库读取数据的例子?
4 楼 raymond.chen 2011-08-17  
已经升级到jquery-1.6.2版本了
3 楼 chensong215 2011-08-09  
很好,很强大,但不知楼主能否升级下jquery的版本,现在只能用jquery-1.3.2,如果用jquery-1.6.2就会报错,谢谢!
2 楼 can4you 2011-07-06  
如何动态给data赋值啊  ???
1 楼 wushanlang 2011-03-02  
楼主  你的这个文件下载不了啊

相关推荐

    基于jQuery的TreeGrid组件

    **基于jQuery的TreeGrid组件详解** 在Web开发中,数据展示是不可或缺的一部分,尤其是在处理层级结构数据时。jQuery TreeGrid组件就是为此而设计的,它将表格与树形结构结合,提供了一种直观且交互性强的数据展示...

    jquery easyui treegrid demo 详解

    jQuery EasyUI 是一款基于 jQuery 的前端开发框架,它提供了一系列的组件,如对话框、表格、树形控件等,帮助开发者快速构建用户界面。TreeGrid 是 EasyUI 中的一个重要组件,它结合了表格和树形结构的特点,适用于...

    jquery-treegrid 树形表格组件

    **jQuery TreeGrid 知识点详解** jQuery TreeGrid 是一个基于 jQuery 的插件,用于将普通的HTML表格转换成可折叠的树形结构,提供了一种高效且用户友好的方式来组织和展示层次化数据。这个组件在网页开发中非常实用...

    JQuery TreeGrid(表格)

    - `基于jQuery的TreeGrid组件详解.docx` 文件很可能是关于如何使用 TreeGrid 插件的详细指南,包括实例代码和步骤说明,这对于初学者来说是宝贵的参考资料。 5. **API 及方法** - `expandRow(id)`:展开指定ID的...

    jQuery.treeGrid 前端展示

    **jQuery.treeGrid 知识点详解** 在前端开发中,数据的展示方式多种多样,其中树形结构是一种常见的数据组织形式,尤其适用于层次关系清晰的数据。`jQuery.treeGrid` 是一个基于 jQuery 的插件,它使得在网页上以树...

    一个基于ASP.net+Jquery+GridView实现无刷新TreeGrid源码例子

    【ASP.NET + jQuery + GridView 实现无刷新TreeGrid详解】 在Web开发中,TreeGrid是一种常见且实用的数据展示控件,它将树形结构和表格数据结合在一起,为用户提供了一种直观、高效的浏览和操作数据的方式。这个...

    JeasyUI treegrid 前后台交互实例

    前端利用jQuery EasyUI的TreeGrid组件展示数据,后端通过Servlet提供JSON数据。这个过程涉及到前端界面的构建、后台数据的处理以及JSON格式的数据交换,是Web开发中常见的一种数据交互模式。在实际应用中,可以根据...

    Java easyui树形表格TreeGrid的实现代码

    Java EasyUI 是一个基于 jQuery 的前端 UI 框架,它提供了很多实用的 UI 组件来帮助开发者快速构建 web 应用程序。其中,TreeGrid 组件是一个功能强大且灵活的数据网格控件,它可以用来展示树形结构的数据。今天,...

    jquery 异步treeTable树形插件

    jQuery异步treeTable插件是一款基于jQuery的开源组件,主要用于在HTML表格中展现具有层级关系的数据。其核心特性包括: 1. 动态加载:当用户展开一个节点时,只加载该节点下的子节点数据,降低了初始页面的加载压力...

    jquery datatables 所需文件 官方下载的

    **jQuery DataTables 知识点详解** `jQuery DataTables` 是一个强大且功能丰富的JavaScript库,用于将HTML表格转化为交互式的数据展示工具。这个库基于jQuery框架,提供了数据排序、搜索、分页以及多种自定义功能,...

    jquery.easyui前台框架

    jQuery EasyUI 是一款基于 jQuery 的前端框架,它为开发者提供了丰富的组件和易用的API,使得构建交互式的Web应用变得更加简单。标题中的"jquery.easyui前台框架"正是指这个强大的工具,它不仅能够帮助开发者快速地...

    jquery-easyui官方示例及API文档中文版

    jQuery EasyUI是一个基于jQuery的UI框架,它提供了丰富的组件和方便的API,使得开发者能够快速构建功能强大的Web应用。在这个"jquery-easyui-1.5.4.5"版本中,包含了一系列官方示例和详细的API文档中文版,为理解和...

    JQueryEasyui1.3.6+电子书文档+14套主题

    2. **组件详解**:详细解释每个组件的用法、属性、事件、方法,提供实例代码供参考。 3. **进阶指南**:讲解如何进行数据操作、异步通信、自定义组件等高级话题。 4. **常见问题**:收集并解答开发者在使用过程中...

    jquery.jqgrid最新版

    《jQuery.jqGrid详解——打造高效数据管理界面》 jQuery.jqGrid是一款强大的JavaScript插件,主要用于构建数据密集型Web应用程序,特别是在展示和操作大量结构化数据时。它以其丰富的功能集、高度可定制性和易用性...

    jquery easyui

    jQuery EasyUI 是一个基于 jQuery 的轻量级前端框架,它提供了一系列的 UI 组件,使得开发者可以快速构建出功能丰富的 Web 应用程序。EasyUI 将常见的用户界面元素如表格、对话框、菜单、按钮、表单等进行了封装,...

    treegrid控件

    **树形Grid控件详解** 树形Grid控件是一种结合了树形结构和表格数据展示的UI组件,常用于在Web应用或者桌面应用中展示层级关系的数据。它将数据以节点的形式呈现,每个节点可以展开或折叠,显示或隐藏其子节点,...

    jQuery EasyUI v1.3.5官方API中文版.zip

    jQuery EasyUI是一个基于jQuery的轻量级前端框架,它提供了丰富的UI组件,使得开发者能够快速构建功能完善的Web应用程序。在v1.3.5版本中,这个框架继续优化了其性能和用户体验,同时提供了详尽的API文档和教程,...

    Jquery001 (easy-ui) API全集+ DEMO和

    jQuery EasyUI 是一个基于 jQuery 的轻量级前端框架,它提供了一系列的组件和插件,帮助开发者快速构建用户界面。这个名为 "Jquery001 (easy-ui) API全集 + DEMO" 的资源包含了EasyUI的API文档以及演示示例,对于...

    详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)

    Jquery EasyUI是一个基于jQuery的用户界面插件库,它为web开发者提供了丰富的UI组件,能够帮助开发者快速构建美观的界面。在Jquery EasyUI中,tree组件是一个常用的功能模块,用于展示层级数据,如文件夹结构、组织...

Global site tag (gtag.js) - Google Analytics