数据库树形结构,EasyUI Tree 树

本文介绍了如何使用EasyUI Tree组件在网页上展示数据库中的分层数据。通过$.fn.tree.defaults重写默认配置,利用loadFilter处理ASP.NET web服务返回的JSON数据。在数据库中查询特定父ID的类别,结合Java后端服务实现异步加载。涉及到的文件包括TbItemCatMapper.xml、EUTreeNode.java、ItemCatService.java、ItemCatServiceImpl.java和ItemCatController.java等,实现了根据parent_id查询并返回JSON格式的树形结构数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过 $.fn.tree.defaults 重写默认的 defaults。

树(tree)在网页中以树形结构显示分层数据。它向用户提供展开、折叠、拖拽、编辑和异步加载功能。

image

树的数据格式(Tree Data Format)
每个节点可以包括下列属性:

id:节点的 id,它对于加载远程数据很重要。 --对应id
text:要显示的节点文本。----对应name
state:节点状态,‘open’ 或 ‘closed’,默认是 ‘open’。当设置为 ‘closed’ 时,该节点有子节点,并且将从远程站点加载它们。
checked:指示节点是否被选中。
attributes:给一个节点添加的自定义属性。
children:定义了一些子节点的节点数组。
实例:我们需要这个结构的json

[{
    "id":1,
    "text":"Folder1",
    "iconCls":"icon-save",
    "children":[{
		"text":"File1",
		"checked":true
    },{
		"text":"Books",
		"state":"open",
		"attributes":{
			"url":"/demo/book/abc",
			"price":100
		},
		"children":[{
			"text":"PhotoShop",
			"checked":true
		},{
			"id": 8,
			"text":"Sub Bookds",
			"state":"closed"
		}]
    }]
},{
    "text":"Languages",
    "state":"closed",
    "children":[{
		"text":"Java"
    },{
		"text":"C#"
    }]
}]

###用法比较简单

树(tree)定义在

  • 元素中。该标记可定义叶节点和子节点。节点将是 ul 列表内的
  • 元素。下面演示了将被用于制作嵌套在 ul 元素内的树节点的元素。

ul id="tt" class="easyui-tree">
    <li>
		<span>Folder</span>
		<ul>
			<li>
				<span>Sub Folder 1</span>
				<ul>
					<li><span><a href="#">File 11</a></span></li>
					<li><span>File 12</span></li>
					<li><span>File 13</span></li>
				</ul>
			</li>
			<li><span>File 2</span></li>
			<li><span>File 3</span></li>
		</ul>
	</li>
    <li><span>File21</span></li>
</ul>

树(Tree)也可以在一个空的

  • 元素中定义,可使用 javascript 加载数据。

    $('#tt').tree({ url:'tree_data.json' });

    其中 url:‘tree_data.json’ 文档里是写死的获取的是本地的json文件 我们可以写映射地址,获取数据库的信息

    使用 loadFilter 来处理来自 ASP.NET web 服务的 json 数据。

    $('#tt').tree({
        url: ...,
        loadFilter: function(data){
    		if (data.d){
    			return data.d;
    		} else {
    			return data;
    		}
        }
    });
    

    data 就是从后台返回的数据

    具体可以查看Easyui Tree树中文文档:http://www.jeasyui.net/plugins/185.html
    数据库 选用的是 tb_item_cat

    CREATE TABLE `tb_item_cat` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '类目ID',
      `parent_id` bigint(20) DEFAULT NULL COMMENT '父类目ID=0时,代表的是一级的类目',
      `name` varchar(50) DEFAULT NULL COMMENT '类目名称',
      `status` int(1) DEFAULT '1' COMMENT '状态。可选值:1(正常),2(删除)',
      `sort_order` int(4) DEFAULT NULL COMMENT '排列序号,表示同级类目的展现次序,如数值相等则按名称次序排列。取值范围:大于零的整数',
      `is_parent` tinyint(1) DEFAULT '1' COMMENT '该类目是否为父类目,1为true,0为false',
      `created` datetime DEFAULT NULL COMMENT '创建时间',
      `updated` datetime DEFAULT NULL COMMENT '创建时间',
      PRIMARY KEY (`id`),
      KEY `parent_id` (`parent_id`,`status`) USING BTREE,
      KEY `sort_order` (`sort_order`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1183 DEFAULT CHARSET=utf8 COMMENT='商品类目';
    

    image.png

    ###流程

    1.通过parent_id 查询分类的列表

    在item-add.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <link href="/js/kindeditor-4.1.10/themes/default/default.css" type="text/css" rel="stylesheet">
    <script type="text/javascript" charset="utf-8" src="/js/kindeditor-4.1.10/kindeditor-all-min.js"></script>
    <script type="text/javascript" charset="utf-8" src="/js/kindeditor-4.1.10/lang/zh_CN.js"></script>
    <div style="padding:10px 10px 10px 10px">
    	<form id="itemAddForm" class="itemForm" method="post">
    	    <table cellpadding="5">
    	        <tr>
    	            <td>商品类目:</td>
    	            <td>
    	            	<a href="javascript:void(0)" class="easyui-linkbutton selectItemCat">
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值