bootstrap-treeview的数据展示与查询。

bootstrap treeview 菜单树 最详细 实体类 @Data public class BootTree { private Integer id; private String text; private Integer pid; private Boolean selectable; private List nodes; private String href; } controller 层 @RequestMapping(“get... 阅读详情

这里是一个数据资源的展示,一般的,包含父子节点的数据结构类型都可以参考这种方式:

var root = [ {
	"text" : "根目录",
	"obj_type" : 1, // means dir. has children.
	"path" : "x",
	"id" : 0,
} ];
var map = new Map();		//缓存所有节点信息,  key为id。 value为tree的element对象。 
var catalogMap = new Map();	//缓存所有资源,  key为id。 value为catalog对象。 
var catalogList;			//缓存所有资源  List
refreshTree();				//刷新树
/**
 * 刷新树
 */
function refreshTree(){
	$("#searchName").val("");
	$("#searchCode").val("");
	$.ajax({
		//这里的查询是根据父节点id升序查询的,根据父节点id一定比其子节点id小的规则。即:加载子节点时,其父节点必定已经加载的规则,只需一次循环。
		url:"xxAction!xx.action",
		dataType:"json",
		success:function(ret){
			var list = ret.catalogList;
			catalogList = list;
			map.set(0,root[0]);
			var array = new Array();
			if(list!=null)
				for(var i=0;i<list.length;i++){
					//element 节点
					var e = {
							"id":list[i].id,
							"pId":list[i].parentId,
							"text":list[i].name,
							"obj_type":list[i].type
					};
					if(list[i].type==1){
						e.nodes=[];
					}
					map.set(list[i].id,e);
					catalogMap.set(list[i].id,list[i]);
					array.push(e);	
					if(i < list.length-1 && list[i].parentId != list[i+1].parentId){
						//给其父节点赋值
						if(map.get(list[i].parentId)!=null){
							map.get(list[i].parentId).nodes=array;
						}
						var array = new Array();
					}else if(i == list.length -1){
						//给其父节点赋值,这是最后一个节点
						if(map.get(list[i].parentId)!=null){
							map.get(list[i].parentId).nodes=array;
						}
					}
				}
			//渲染 树
			updateTree();
		},
		error:function(){
			alert("获取资源信息失败。");
		}
	});
}
/**
 * 查询功能
 */
function searchByNameAndCode(){
	var searchName =$("#searchName").val();
	var searchCode =$("#searchCode").val();
	root[0].nodes=[];				//初始化nodes,无查询结果时,只展示根目录。
	var tempMap = new Map();		//局部缓存,用于保存查询结果树的信息。	element对象
	tempMap.set(0,root[0]);
	for(var i=0;i<catalogList.length;i++){
		
		if(catalogList[i].name == null || catalogList[i].name.indexOf(searchName)==-1){
			continue;	//不包含文本
		}
                
		if(catalogList[i].code == null || catalogList[i].code.indexOf(searchCode)==-1){
			continue;	//不包含文本
		}
		//element 节点
		var e = {
				"id":catalogList[i].id,
				"pId":catalogList[i].parentId,
				"text":catalogList[i].name,
				"obj_type":catalogList[i].type
		};
		if(catalogList[i].type==1){
			e.nodes=[];
		}
		addToTree(tempMap,e);			//将节点添加至树中。
	}
	//渲染 树
	updateTree();
}
//插入树节点中
function addToTree(tempMap,e){
	if(tempMap.get(e.id)!=null){
		return;	//自身已经被添加过了,则其父节点都已被添加过。
	}
	tempMap.set(e.id,e);
	var pe = tempMap.get(e.pId)
	if(pe!=null){
		pe.nodes.push(e);	//局部缓存存在,表示这不是第一个符合查询条件的节点,向其节点中增加该节点。
	}else if(pe == null && map.get(e.pId)!= null){
		pe = map.get(e.pId);		//从全局缓存获取
		var array = new Array();
		array.push(e)
		pe.nodes = array;			//局部缓存不存在,表示这是第一个符合查询条件的节点
	}else if(map.get(e.pId)==null){
		return;						//如果全局缓存中都不存在该节点的父节点,说明该节点是冗余数据。
	}
	if(pe.id != 0){
		addToTree(tempMap,pe);		//如果父节点pe不是根节点,则将父节点继续添加至该树
	}
}


/**
 * 刷新树, 树的定义
 */
function updateTree() {
	$('#tree').treeview({
		data : root,
		showBorder : false
	});
	// 
	$('#tree').on('nodeSelected', function(event, data) {
		//data为节点信息
		//updateResource(data);
	});

	$('#tree').on('nodeUnselected', function(event, data) {
		// 无特殊处理
	});

	$('#tree').on('nodeExpanded', function(event, data) {
		// 无特殊处理
	});

	$('#tree').on('nodeCollapsed', function(event, data) {
		// 无特殊处理
	});
}

简单的html页面:

<div style="float:left;margin-top:5px;">
			<div style="padding-top: 5px; padding-bottom: 5px; padding-left: 8px;">
					<form id="searchForm"  style="text-align: left;">
						<div  style="padding-left: 8px;">
							<label for="searchName">名称:</label> <input type="text"
								 id="searchName" onkeyup="this.value=this.value.replace(/^ +| +$/g,'')"
								placeholder="输入名称">
						</div>
						<div  style="padding-left: 18px;">
							<label for="searchCode">编码:</label> <input type="text"
								 id="searchCode" onkeyup="this.value=this.value.replace(/^ +| +$/g,'')"
								placeholder="输入编码">
						</div>
						<button type="button" style="margin-left:15px;"
						onClick="searchByNameAndCode()">查询</button>
					</form>
				</div>
		</div>
<div id="tree"></div>

 

bootstrap treeview可搜索下拉树形 jquery,bootstrap, treeview可搜索下拉树形,设置了滚动条, 内容包括后台及实体类,页面,表结构及数据、说明,运行图片。 立即下载

相关推荐

bootstrap-treeview史上最强例子

强烈建议初次使用bootstrap的人参考,例子很全 bootstrap树控件使用bootstrap-treeview.js实现树前边多选框checkbox 并实现, 0、获取选中的项 1、点击父级的多选框,自己默认选中 2、全选 3、反选 4、展开、 5、折叠

bootstraptreeview子父节点选中

在使用bootstrap-treeview插件的时候,需要实现选中某个节点时同时选中其祖辈节点和其子孙节点,难受的是它貌似并没有实现这样的功能,只能自己动手实现了,我这里是直接修改源代码实现的。 在源码中找到以下函数 Tree.prototype.toggleCheckedState = function(node, options) { if (!node) re...

不想翻身的咸鱼 2391

bootstrap-treeview树节点实现动态加载(懒加载)

在官方提供的版本的基础上,开发了懒加载功能

bootstrap-treeview 的使用

首先,看看效果 简要介绍:bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多级列表树插件。该jQuery插件基于Twitter Bootstrap,以简单和优雅的方式来显示一些继承树结构,如视图树、列表树等等。(百度的) 使用方法 首先要在页面中引入依赖文件和 bootstrap-treeview.js文件。 <linkhref="....

trouble is a friend 537

可乐学习NVMe之一:为什么SSD需要NVMe

1. NVMe SSD 结构简图 整体来看,NVMe SSD可以分为三部分,host端的驱动NVMe Driver、PCIe+NVMe实现的控制器以及NAND Flash+DDR4/DDR5存储介质。 芯片回片后Host侧软件或者驱动开发主要在应用层,通过一些测试工具进行benchmark跑分测试,performance性能分析,latency分析、stress-testing等等: 那么,接下来阐述为什么SSD需要NVMe,并再后续的文章介绍NVMe协议分析,个人针对协议的理解,如果有不当之处,还请各

Lucky 3166

4.图像sensor的特性和驱动解析

例子:sensor驱动自己提供操作曝光时间的函数和获取曝光时间的函数,然后将这个函数注册到ISP库和3A算法库,3A算法库根据外部光照强度计算出一个Sensor曝光时间的设置值,ISP库得到这个设置值,然后通过Sensor之前注册的回调函数,把这个值设置到Sensor的硬件寄存器中去,实现整个过程。是为 ISP 配置正确的输入时序。(1)修改驱动源码(sambashar\Hi3518E_SDK_V1.0.3.0\package\mpp\component\isp\sensor\ar0130)

weixin_53762042的博客 3566

bootstrap-treeview

bootstrap-treeview 简要教程 bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多级列表树插件。该jQuery插件基于Twitter Bootstrap,以简单和优雅的方式来显示一些继承树结构,如视图树、列表树等等。  插件依赖 Bootstrap v3.0.3jQuery v2.0.3 以上两

xiaoyushiying的专栏 5952

【Tessent Shell Users Manual】【Ch3】Design Introspection and Editing(未完待续)

Tessent Shell 提供了一系列用于检查(examining/introspecting)和编辑design的命令。

Tranquil_ovo的博客 1730

前端折腾记之Bootstrap-treeview组件-2021-1019

前端折腾记之Bootstrap-treeview组件介绍Bootstrap-treeview组件版本Bootstrap-treeview的1.2版本扩展addNode方法动态添加子节点的方法删除节点Bootstrap-treeview的2.1版本 介绍 目前,国内网上关于Bootstrap的treeview组件的一些教程已有不少。但是大多数教程在给出的时候都没有标明自己所用的bootstrap-treeview.js的版本具体是哪个版本。以至于许多像我这样的小白在参考的时候,非常焦虑。所以准备在这里把自己看

sunbcy的博客 804

国科GK7202V300芯片开发避坑指南:从uboot编译到SDK配置的12个实战问题解决

本文针对国科GK7202V300芯片开发过程中的常见难题,提供从uboot编译、SDK配置到系统部署的实战解决方案。详细解析了开发环境搭建、内核编译、驱动模块加载、根文件系统构建及烧写部署等12个关键环节的避坑指南,帮助开发者高效解决编译错误、配置冲突等典型问题,提升开发效率。

sunny的博客 233

【异常】XXL-JOB提示异常ERROR com.xxl.job.core.util.XxlJobRemotingUtil - connect timed out

打开XXL-JOB的ELK,发现一堆报错。

奶爸的编程之路,也就一周冷个三天 2046

使用bootstrap-treeview插件实现三级联动

1、需要导入Js,css文件。 推荐使用绝对路径 协议+ip+端口+项目名称+路径 css的样式: <link href="${base}/resources/plugins/bootstrap-treeview/css/bootstrap-treeview.css" rel="stylesheet"> <link href="${base}/re...

weixin_40214184的博客 608

真随机数与伪随机数

前面我们学习了LFSR,这个玩意落地到具体的应用是什么呢?没错是寄存器,这里在网络找到了几个回答,这里做个记录,下面一起来学习一下吧。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 1062

bootstrap treeview实现菜单树

本博客,介绍通过Bootstrap的treeview插件实现菜单树的功能。 treeview链接:http://www.htmleaf.com/Demo/201502141380.html ORM框架是Mybatis的,这里其实就是单表查询而已,获取要做菜单树的信息表,这张表必须要有一个parentSeq,然后通过关联实现。 <sql id="groupDefineColum"> ...

weixin_30432007的博客 896

机器人动力学仿真软件:V-REP (CoppeliaSim)_(15).仿真项目案例分析

通过以上几个具体的仿真项目案例,我们展示了如何在V-REP (CoppeliaSim)中进行二次开发,实现复杂的机器人动力学仿真任务。这些案例涵盖了六轴机械臂的运动学仿真、移动机器人的路径规划和避障、以及无人机的飞行控制和环境感知。每个项目都通过编写Lua脚本实现了对机器人模型的控制和任务执行,并通过仿真结果分析验证了算法的有效性和系统性能。希望这些案例能够为读者在实际项目中使用V-REP (CoppeliaSim)提供有益的参考和启发。

kkchenjj的博客 1294

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

使用bootstrap-treeview 插件实现树状结构数据展示

这几天在上网找了bootstrap treeview例子,但是看别人写的demo都是模棱两可,感觉无从下手。因为项目的需要,索性自己也写个。 架构用 ssm+bootstrap 1、底层 1.1、数据库结构,dept部门表结构。 部门表有 id、name、父类id、排序等字段 1.2 mybatis 中的查询语句。 <!-- 查询部门信息 getDeptTreeList --> <select id="getDeptTreeList" resultType="j.

kay523393的博客 1777

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Bootstrap系列之treeview实现菜单树

本博客,介绍通过Bootstrap的treeview插件实现菜单树的功能。 treeview链接:http://www.htmleaf.com/Demo/201502141380.html ORM框架是Mybatis的,这里其实就是单表查询而已,获取要做菜单树的信息表,这张表必须要有一个parentSeq,然后通过关联实现。 &amp;lt;sql id=&quot;groupDefineColum&quot;&amp;gt; ...

Nicky's blog 6633

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

(四十四)数据字典-树状treeview树的实现

数据字典-treeview树的实现 什么是数据字典? 顾名思义数据字典=数据+字典 ,字典是用来查询东西的,所以数据字典就是描述数据信息的集合.数据字典是一种通用的程序设计方法,程序中有很多主体,每个主体的都有很多属性,每种属性都有很多取值并且不断变化. 使用数据字典的优点: 1.简化了主体类的业务逻辑 2.高了系统的灵活性、通用性,减少了主体和属性的耦合度 3.使数据库表结构和程序结构条理上更清楚,更容易理解 数据字典表设计 1.二级数据字典设计方案 ,第一级:数据字典目录 第二级:数据字典明细 2

kentlhxy的博客 2321

bootstrap treeview根据后端数据id,级联勾选下级

服务端传到前段一个树状目录某一个目录id,如何显示这个目录勾选,顺带这个目录的所有下级也勾选呢。 笨办法是服务端根据这个id,取出所有子孙id,到前端来选择。问题是,treeview没有这个功能:根据id来获取这个node。 view的很多方法都是对node或nodes进行操作,那么这个node或nodes如何来呢?你自己根据服务端传过来的id、text等定义一个node是不行的,比如: ...

hotqin888的专栏 2069

bootstrap-treeview根据条件过滤相关数据

t对需要数据进行分析 需要过滤的数据是一个数组,该数组中每条数据都是由name$$ID$$parentID$$status$$type,需要实现根据相关状态值进行筛选,筛选完成后,对于没有叶子结点的分类菜单,需要移出,不在树上展示。 name ID parentID status type 该条数据名称 该条数据Id号 该条数据的父ID 数据的状态(共四种) 数据的分类(1表示菜单,0表示叶子结点) 思路分析 经过对数据的分析,可以看出来这些记录组成的数据是一种逻辑上的链表结构,由叶子结

heromps的博客 784

bootstrap的treeview使用方法

首先引入文件: <link href="./css/bootstrap.css" rel="stylesheet"> <script src="./js/jquery.js"></script> <script src="./js/bootstrap-treeview.js"></script> HTML 结...

dingtuo8679的博客 211

前端动态菜单-bootstrap-treeview

一、bootstrap-treeview 官网 Demo bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多级列表树插件。该jQuery插件基于Twitter Bootstrap,以简单和优雅的方式来显示一些继承树结构,如视图树、列表树等等。 插件依赖 Bootstrap v3.0.3 jQuery v2.0.3 二、...

weixin_30532973的博客 465

bootstrap-treeview后台动态生成目录树数据

 1、数据库表结构   zone_code:地址编码 zone_name:地址名称 zong_type:地址级别 patent_code:父地址编码 zone_id:uuid 2、实体类 import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entit...

blackeye 1669

bootatrap-treeview实现下拉树及其模糊查询

bootstrap-table-tree.js的引入 tip:bootstrap-table-tree.js必须在bootstrap-table.js后引入,因为bootstrap-table-tree.js对bootstrap-table.js中的initData等方法进行了重写。即对响应的数据进行重新包装,其关键代码如下: //调用bootstrapTable组件的构造器得到对象 v...

kelsey1234的博客 1751
上一篇: echarts绘图
下一篇: 基于maven的Spring AOP的实现 切面的执行顺序
博风
博客等级 码龄16年 442粉丝 357原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值