`
gege_s
  • 浏览: 18750 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

树形结构之四 web展示方案

阅读更多

爽快些 一下把所有的内容都放上来吧

 

下面放的一段是我通过ajax获得json格式的字符串,并把它展示出来,因为格式的风格的限制这里只列出了二级和三级别结点。

 

上面json字符串的转换会通过另一篇博客与大家分享,是个appache的一个类,支持循环引用检测,使用数据结构中的栈来解决这个问题。

 

js展示代码如下:后面让同事加了一些点击后设置样式的功能,有点乱,不过重心还是在于用js递归所有结点;

 

 

 

	function toURL(url,path,obj) {
		$(".left_zinav").removeClass("left_zinav").addClass("left_world02"); 
	   	$(obj).removeClass().addClass("left_zinav");
	   
	   parent.topframe.toURL(url,path);
	}
	var menu={};//菜单
	menu.data={};//菜单数据
	menu.html='';//菜单里包含的html字符串 通过递归拼接
	menu.sethtml=function(htm){
		menu.html=htm;
	}
	//从服务器加载数据
	menu.loadData=function(){
		$.getJSON("{pageContext.request.contextPath}/login!loadMenu.action",
							function(json){
								if(json.suc&&json.single.children){//加载成功
									menu.data=json.single.children[0];
									menu.write(json.single.children[0]);
									menu.show();
								}else{//加载失败
									window.top.location="${pageContext.request.contextPath}/login!loginUI.action";
								}
							}
				);
		
	}
	//展示
	menu.show=function(){
		$('#targ').html(this.html);
	}
	
	var tmp=''
	var childnum='';
	var num=0;
	var childstyle='';
	var numUrl=0;
	//拼接html
	menu.write=function(nd){
		if(nd.grade==1){
			childnum=nd.children.length;
		}
		
		if(nd.grade==2){
			tmp=nd.text;
			
			if(num==0){
				childstyle="block";
			}else{
				childstyle="none";
			}
			menu.sethtml(menu.html+'<div class="left_nav" onclick="Menu(\''+num+'\',\''+childnum+'\')" ><div class="left_world01">'+nd.text+"</div></div><div style='display:"+childstyle+";' id='children"+num+"'>");
			num++;
		}else if(nd.grade==3){
			tmp=' '+tmp+'  &gt;  '+nd.text;
			menu.sethtml(menu.html+'<div class="left_world02"  style="cursor:pointer;" onclick="toURL(\''+nd.extend.url+'?t=menu\',\''+tmp+'\',this);">'+nd.text+'</div>');
			tmp=nd.text;
		}
		if(nd.children){
			for(var d in nd.children){
				menu.write(nd.children[d]);
			}
			menu.sethtml(menu.html+"</div>");
		}
	}
	//准备完成后加载数据
	$(document).ready(
		function(){
		menu.loadData();
	}
	);
	function Menu(m,count){
		for(var i=0;i<count;i++){
		
			var children=document.getElementById('children'+i).style;
			if(i==m){
				if(children.display=='none'){
					document.getElementById('children'+i).style.display='block';
				}else{
					document.getElementById('children'+i).style.display='none'
				}
			}else {
				document.getElementById('children'+i).style.display='none';
			}
		}
	}

 

 

 

加载数据的方式很多,可以用ajax异步加载过来,也可以用dwr之前通过dwr进行加载后来改成目前这种了 ,

也可以由后台生成的json格式数据放到request里再用eval,或json转化工具进行转化,再进行树的装配与展示。

 

最方便是用下面这种了:

 

用了ligerui(基于jquery的ui框架)的树型工具:

 

 

$("#tree1").ligerTree({  
		            data: data,checkbox: false,nodeWidth: 200,
		            onSelect:function(data,target){
		            	var ex=data.data.extend;
		            	if(ex){
			            	$('#label').val(data.data.extend.label);
			            	$('#descript').val(data.data.extend.descript);
		            	}
		            },
		            onCancelselect:function(){
		            	$('#label').val('');
		            	$('#descript').val('');
		            }
		            
	           });
 

 

上面用到的data可以通过以上说过的方式来获取,也可以配置一个url地址。

 

如 一个下拉列表,列表中的内容是一棵树:

 

 

$("#movetxt").ligerComboBox({
	               	width: 180,
	               	selectBoxWidth: 200,
	               	selectBoxHeight: 200, valueField: 'text',treeLeafOnly:false,
	               	valueField:'id',
	               	tree: { url:"${pageContext.request.contextPath}/depart!getDepartTree.action?instance.departId=1&r="+Math.random(),checkbox:false
	               	}
	           	});
 

 

关于树型结构的处理到这里就已经结束了,谢谢大家!!

分享到:
评论

相关推荐

    BS实现树形结构(jsp+mysql数据库+设计文档)

    在IT行业中,构建树形结构的数据展示是一种常见的需求,特别是在Web应用中,如导航菜单、组织架构图等。本项目“BS实现树形结构(jsp+mysql数据库+设计文档)”提供了一个完整的解决方案,包括源码、开发文档以及SQL ...

    使用jsTree实现js树形结构

    jsTree 是一个强大的 JavaScript 库,专用于在 Web 页面上创建交互式的树形结构。它基于纯 JavaScript 编写,无需依赖其他库,因此对于初学者和有经验的开发者来说,都是一个易于理解和使用的工具。通过这个库,你...

    Struts2树形结构资料大全

    树形结构在很多场景下都是非常有用的,比如数据展示、导航菜单等,因此掌握Struts2中如何构建和操作树形结构是提升开发效率的关键。 首先,理解树形结构的基本概念是必要的。树形结构是一种数据结构,它由节点(或...

    layui dtree树形结构

    在这个场景中,我们看到的"layui dtree树形结构"指的是在用户点击一个文本框时,会弹出一个下拉框,下拉框内显示的是一个层次分明的树形结构。这种设计可以方便用户从多个选项中选择一个或多个层级相关的项目。 ...

    jQuery高性能带复选框的树形结构插件

    在Web开发中,树形结构常常用于展示层级关系的数据,例如组织结构、文件系统等。`highchecktree`是一个专门针对这种情况设计的jQuery插件,它能高效地处理大量数据并提供带有复选框的功能,使得用户可以进行多级选择...

    无限级树形结构(增、删、改、排序+TreeView显示)

    在IT领域,无限级树形结构是一种常见的数据组织方式,特别是在构建层次化数据展示或管理的系统时。本文将深入探讨无限级树形结构的概念、实现方式,以及如何结合Asp.Net技术,利用TreeView控件进行展示,并涵盖增、...

    纯CSS族谱树形结构

    本文将深入探讨如何使用纯CSS来创建一个可无限扩展的族谱树形结构,适用于HTML5、PHP以及Web开发等多个领域,并提供关于如何进行二次开发以适应个人需求的指导。 首先,CSS(Cascading Style Sheets)是一种样式表...

    jsp实现树形结构dtree

    【标题】"jsp实现树形结构dtree"涉及的核心技术主要集中在JSP(JavaServer Pages)、JavaScript以及一种叫做dtree的树形展示库。这里,我们将会深入探讨这些技术及其在构建树形结构中的应用。 首先,JSP是Java的一...

    java动态树形菜单

    Servlet负责处理请求,可能包括从数据库或者其他数据源获取菜单数据,然后将这些数据组织成树形结构。接着,JSP页面接收Servlet传递的数据,并将其转换为HTML,呈现为树形菜单。 实现步骤如下: 1. **数据模型**:...

    easy ui tree 前后端树形结构项目 权限管理demo

    本项目"easy ui tree 前后端树形结构项目 权限管理demo"提供了一个完整的解决方案,使用了Easy UI Tree库来实现前端的树形结构,并结合SSM(Spring、SpringMVC、MyBatis)框架和MySQL数据库进行后端处理。...

    h5移动端部门树展示

    在H5移动端开发中,部门树展示是一种常见的需求,它用于组织结构的呈现,比如公司内部的部门架构、员工层级关系等。这种功能通常应用于企业内部管理系统或者协作平台,便于用户快速查找和理解组织结构。下面我们将...

    C#网页源码查看器 源码树形结构显示html,可以参考开发

    总之,"C#网页源码查看器"提供了一个学习和实践C# HTML解析以及树形结构展示的宝贵机会,对于提升开发者在Web开发领域的技能大有裨益。通过深入研究源代码,可以掌握如何利用C#处理和解析HTML,以及如何构建直观易用...

    ztree树形结构+mysql完整

    本项目"ztree树形结构+mysql完整"结合了ZTree的功能与MySQL数据库的使用,提供了一个完整的解决方案,包括数据存储、查询以及前端交互。 首先,ZTree的核心特性在于其丰富的API和可定制性。它支持动态加载、节点...

    jQuery文件树形结构菜单(适用springmvc框架)

    本文将详细解析如何利用jQuery构建一个树形结构菜单,并将其应用于Spring MVC框架,以便从后端获取JSON数据并动态展示为树形菜单。 首先,让我们了解一下jQuery的树形结构菜单。在网页设计中,树形结构菜单通常用于...

    jsp树形控件

    可以创建一个JavaBean来存储和管理树形结构的数据,然后在JSP页面上使用`&lt;jsp:useBean&gt;`标签来实例化和操作这个JavaBean。通过设置属性和方法来动态地构建和更新树形结构。 #### 3.2 使用JSTL (JavaServer Pages ...

    js写的树形结构源代码

    在现代Web开发中,树形结构是一种常见的数据展示形式,广泛应用于文件系统、组织架构、菜单导航等场景。通过JavaScript实现树形结构不仅可以增强用户体验,还能提高前端开发效率。本篇文章将基于一份JavaScript编写...

    两款带复选框的树形结构

    在IT行业中,尤其是在前端开发领域,树形结构是一种常见的数据展示方式,用于组织层次化信息。树形结构通常由节点组成,每个节点可以有子节点,形成一个分层的结构,便于用户理解和操作。在本案例中,我们关注的是两...

    JavaScript与web树形菜单全

    它可能包含HTML、CSS和JavaScript代码,展示了如何将JavaScript与HTML结构结合,创建一个完整的Web树形菜单。开发者可以通过分析这些文件,学习如何定义树形菜单的样式,以及如何使用JavaScript处理用户的交互。 ...

    ajax 方式实现的动态树形结构,从库中取数据

    在IT领域,动态树形结构是一种常见的用户界面元素,它被广泛用于展现层次化数据,如文件系统、组织架构或数据库中的分类数据。在这种结构中,节点可以展开或折叠,以便用户能方便地浏览和操作数据。在本案例中,我们...

    extjs树形结构实现系统主界面功能框架借鉴.pdf

    在本文档中,作者展示了如何使用EXTJS创建一个具有树形结构的系统主界面功能框架。这个框架利用EXTJS的强大组件模型,允许用户通过点击树形节点在中心区域打开新的选项卡,展示相应的功能或内容。 1. **树形结构**...

Global site tag (gtag.js) - Google Analytics