创建jQgrid树形表格

创建 jQgrid树形表格

官网地址:http://www.trirand.com/jqgridwiki/doku.php?id=wiki:treegrid
案例地址:https://blog.mn886.net/jqGrid/

1、编写html页面引入相应插件文件
jQgrid基于jQuery库,首先要引入jQuery.js;表格样式使用了boostrap,引入了boostrap.min.css;引入ui.jqgrid.css、jquery.jqGrid.min.js、grid.locale-cn.js

<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	    <link rel="shortcut icon" href="favicon.ico">
	    <link href="../../css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
	    <link href="../../css/plugins/jqgrid/ui.jqgrid.css" rel="stylesheet" />
	    <link href="../../css/font-awesome.min.css?v=4.4.0" rel="stylesheet">
	</head>
	<body>
		
		<table id="treeTable"></table>
	</body>
	<script src="../../js/jquery.min.js?v=2.1.4"></script>
	<script src="../../js/bootstrap.min.js?v=3.3.6"></script>
	<script src="../../js/plugins/jqgrid/jquery.jqGrid.min.js"></script>
	<script src="../../js/plugins/jqgrid/i18n/grid.locale-cn.js"></script>
</html>

2、jQgrid初始配置

$('#treeTable').jqGrid({
	url: '../../data/department.json', // 本地json数据
	styleUI:'Bootstrap', // 使用Boostrap样式
	datatype: 'json',
	treeGrid: true,  // 启用treeGrid树形表格
	treeGridModel: 'adjacency', // treeGrid所使用的数据结构方法,nested:嵌套集模型,adjacency: 邻接模型
	ExpandColumn: 'name', // 指定那列来展开tree grid,默认为第一列
	colNames: ['部门名称','联系电话','部门地址','启用','部门描述'],
	colModel: [
		{ name:"name", index:"name", align: "left", width: 300, sortable: false },
		{ name:"tel", index:"tel", align: "left", width: 160, sortable: false },
		{ name:"address", index:"address", align: "left", width: 400, sortable: false },
		{ name:"status", index:"status", align: "left", width: 140, sortable: false, formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false} },
		{ name:"description", index:"description", align: "left", width: 600, sortable: false }
	],
	autowidth: true,
	jsonReader: {
		rows: 'rows',
		repeatitems: false
	},
	treeReader: { // 扩展表格的colModel
	     level_field: "level",  //  treeGrid等级字段,从0开始
   		parent_id_field: "parent",  // treeGrid父级id字段
  		leaf_field: "isLeaf",  // 是否叶子节点字段
   		expanded_field: "expanded" //treeGrid是否展开字段 
	}
});

注意:
下面是实现treeGrid树形结构所需的基本配置

	treeGrid: true,  // 启用treeGrid树形表格
	treeGridModel: 'adjacency', // treeGrid所使用的数据结构方法,nested:嵌套集模型,adjacency: 邻接模型
	ExpandColumn: 'name', // 指定那列来展开tree grid,默认为第一列
	treeReader: { // 扩展表格的colModel
		level_field: "level",  //  treeGrid等级字段,integer类型,从0开始
	    parent_id_field: "parent",  // treeGrid关联父级id字段
	    leaf_field: "isLeaf",  // 是否叶子节点字段,boolean类型
	    expanded_field: "expanded" //treeGrid是否展开字段 ,boolean类型
	}

3、本地静态json数据(adjacency:邻接数据结构)

{
	"rows": [
		{
			"id": 0,
			"status": 1,
			"name":"张三",
			"tel":"13011112222",
			"address": "辽宁省本溪市广裕路6号",
			"status": 1,
			"description": "货物仓储、运输、装卸、集装箱、接取送达、煤炭抑尘、特种设备运输等业务。",
			"level": 0,
			"parent": null, // level为0时,即第一级结构,parent为null值
			"isLeaf": false,
			"expanded": true
		},
		{
			"id": 1,
			"name":"张三",
			"tel":"13011112222",
			"address": "辽宁省本溪市广裕路6号",
			"status": 0,
			"description": "货物仓储、运输、装卸、集装箱、接取送达、煤炭抑尘、特种设备运输等业务。",
			"parent": 0,
			"level": 1,
			"isLeaf": true,
			"expanded": false
		},
		{
			"id": 2,
			"name":"张三",
			"tel":"13011112222",
			"address": "辽宁省本溪市广裕路6号",
			"status": 0,
			"description": "货物仓储、运输、装卸、集装箱、接取送达、煤炭抑尘、特种设备运输等业务。",
			"level": 0,
			"parent": null,
			"isLeaf": true,
			"expanded": false
		}
	]
}

4、页面展示
在这里插入图片描述
5、注意
1、使用treeGrid树形结构时,不支持分页、不支持多选,有兴趣的可以修改源码调试

treeGrid源码设置
setTreeGrid : function() {
//省略...
	$t.p.subGrid = false;$t.p.altRows =false;
	$t.p.pgbuttons = false;$t.p.pginput = false;
	$t.p.gridview =  true;
	if($t.p.rowTotal === null ) { $t.p.rowNum = 10000; }
	$t.p.multiselect = false;$t.p.rowList = [];
//省略...
}

2、本例修改了treeGrid的树形图标

<!DOCTYPE html> <html xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>My First Grid</title> <link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap.min14ed.css" /> <link rel="stylesheet" type="text/css" media="screen" href="jqgrid/ui.jqgridffe4.css" /> <style> html, body { margin: 0; padding: 0; font-size: 75%; } </style> [removed][removed] [removed][removed] [removed][removed] [removed] $(document).ready(function(){ $.jgrid.defaults.styleUI="Bootstrap"; var topicjson={ "response": [ { "id": "1", "elementName": "Grouping", "url":"/asd/asda", level:"0", parent:"", isLeaf:false, expanded:false, loaded:true }, { "id": "1_1", "elementName": "Simple Grouping", "url":"/asd/12", level:"1", parent:"1", isLeaf:true, expanded:false, loaded:true }, { "id": "1_2", "elementName": "May be some other grouping", "url":"/asd/14342", level:"1", parent:"1", isLeaf:true, expanded:false, loaded:true }, { "id": "2", "elementName": "CustomFormater", level:"0", parent:"", isLeaf:false, expanded:false, loaded:true }, { "id": "2_1", "elementName": "Image Formatter", level:"1", parent:"2", isLeaf:true, expanded:false, loaded:true }, { "id": "2_3", "elementName": "Anchor Formatter", level:"1", parent:"2", isLeaf:true, expanded:false, loaded:true } ] }, grid; grid = jQuery("#jsonmap"); grid.jqGrid({ datastr: topicjson, datatype: "jsonstring", height: "auto", loadui: "disable", colNames: ["id","Items","url"], colModel: [ {name: "id",width:200, hidden:true, key:true}, {name: "elementName", editable:true,width:250, resizable: false}, {name: "url",width:200, editable:true,hidden:false} ], treeGrid: true, treeGridModel: "adjacency", ExpandColumn: "elementName", treeIcons: {leaf:'ui-icon-document-b'}, caption: "jqGrid Demos", autowidth: true, rowNum: 10000, ExpandColClick: true, jsonReader: { repeatitems: false, root: "response" }, onSelectRow: function(id){ } }); }); [removed] </head> <body> <table id="jsonmap" ></table> </body> </html>
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值