`

动态实现树形菜单(使用dtree控件)

阅读更多

动态生成树型菜单

数据库脚本:

use master
go
if exists (select * from sysdatabases where name = 'tree')
 drop database tree
go
create database tree
on
(
  Name = 'tree_data',                  --主数据文件的逻辑名称 
    FileName = 'D:/tree_data.mdf'--数据文件的物理名称 
    Size = 5Mb,                         -- 主数据文件的初始大小 
    FileGrowth = 20%                    --主数据文件增长率 
)
log on
(
 Name = 'tree_log'
    FileName = 'd:/tree_log.ldf'
    Size = 3Mb, 
    FileGrowth = 10%
)
go
if exists (select * from sysobjects where name = 'dtree')
 drop table dtree
go
use tree
go
/*--- 创建节点表 ---*/
create table dtree
(
 id varchar(20) ,     --节点编号
 pid varchar(20) ,     --父节点
 [name] varchar(20),     --节点名称
 url varchar(20),     --连接地址
 title varchar(20),     --节点描述
 target varchar(20),     --Target
 icon varchar(20),     --图标
 iconOpen varchar(20),    --展开状态下的图标路径 
 [open] varchar(20)     --是否展开
)
/*--- 初始化测试数据 ---*/
insert into  dtree values('0','-1','T16班','index.jsp','blank','','','','')
insert into  dtree values('1','0','教师','index.jsp','blank','','','','')
insert into  dtree values('2','0','班干部','index.jsp','blank','','','','')
insert into  dtree values('3','0','组长','index.jsp','blank','','','','')
insert into  dtree values('4','0','学员','index.jsp','blank','','','','')
insert into  dtree values('5','1','班主任','index.jsp','blank','','','','')
insert into  dtree values('6','1','教员','index.jsp','blank','','','','')
insert into  dtree values('7','2','班长','index.jsp','blank','','','','')
insert into  dtree values('8','2','学委','index.jsp','blank','','','','')
insert into  dtree values('9','4','学员1','index.jsp','blank','','','','')
insert into  dtree values('10','4','学员2','index.jsp','blank','','','','')
insert into  dtree values('11','4','学员3','index.jsp','blank','','','','')
insert into  dtree values('12','4','学员4','index.jsp','blank','','','','')
insert into  dtree values('13','4','学员5','index.jsp','blank','','','','')
insert into  dtree values('14','4','学员6','index.jsp','blank','','','','')
insert into  dtree values('15','4','学员7','index.jsp','blank','','','','')
insert into  dtree values('16','4','学员8','index.jsp','blank','','','','')
insert into  dtree values('17','4','学员9','index.jsp','blank','','','','')
insert into  dtree values('18','4','学员10','index.jsp','blank','','','','')
insert into  dtree values('19','4','学员11','index.jsp','blank','','','','')
insert into  dtree values('20','4','学员12','index.jsp','blank','','','','')
insert into  dtree values('21','4','学员13','index.jsp','blank','','','','')
insert into  dtree values('22','4','学员14','index.jsp','blank','','','','')
insert into  dtree values('23','4','学员15','index.jsp','blank','','','','')
select id,pid,[name],url,title,target,icon,iconOpen,[openfrom dtree

客户端代码 index.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="com.zsw.biz.TreeNodeBiz;"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>    
    <title>树形菜单</title>
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">    
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page"
 <link rel="StyleSheet" href="dtree.css" type="text/css" />
 <script type="text/javascript" src="dtree.js"></script>
  </head>  
  <body>
    <div>
     <%
      TreeNodeBiz tnb = new TreeNodeBiz();  
     %
>
     <script type="text/javascript">
      d = <%= tnb.getList("dtree") %>
      document.write(d);
     </script>
    </div>    
  </body>
</html>

转换成节点数据转换成js文件 关键代码:

  if(list==null || list.size() == 0){
   System.out.println("没有节点");
   return "";
  }
  
  StringBuffer contents = new StringBuffer();
  contents.append("dtree = new dTree('"+dtree+"');");
  
  for(TreeNode tn : list){   
   contents.append("/n");
   contents.append(dtree+".add('");
   contents.append(tn.getId());
   contents.append("','");
   contents.append(tn.getPid());
   contents.append("','");
   contents.append(tn.getName());
   contents.append("','");
   contents.append(tn.getUrl());
   contents.append("','");
   contents.append(tn.getTitle());
   contents.append("','");
   contents.append(tn.getTarget());
   contents.append("','");
   contents.append(tn.getIcon());
   contents.append("','");
   contents.append(tn.getIconOpen());
   contents.append("','");
   contents.append(tn.getOpen());
   contents.append("');"); 
   contents.append("/n");   
  }

客户端的代码:

需要导入:dtree.js 和dtree.css

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="com.zsw.biz.TreeNodeBiz;"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>    
    <title>树形菜单</title>
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">    
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page"
 <link rel="StyleSheet" href="dtree.css" type="text/css" />
 <script type="text/javascript" src="dtree.js"></script>
  </head>  
  <body>
  <p><a href="javascript: d.openAll();">全部展开</a> |
   <a href="javascript: d.closeAll();">全部关闭</a>
  </p>   
    <div>
     <%
      TreeNodeBiz tnb = new TreeNodeBiz();  
     %>
     <script type="text/javascript">
      d = <%= tnb.getList("dtree") %>
      document.write(d);
     </script>
    </div>    
  </body>
</html>
分享到:
评论

相关推荐

    DTree较好的树形菜单js控件

    DTree是一款优秀的JavaScript控件,专为生成动态、交互式的树形菜单而设计。它的主要优势在于其轻量级、易于使用和高度可定制性,使得开发者可以轻松地在网页中实现复杂的树状布局。 **DTree核心特性:** 1. **...

    DTree(最好用的JS写成的树形菜单控件.内含API)

    DTree是一款基于JavaScript编写的高效、易用的树形菜单控件,被广泛应用于网页界面设计中,以提供用户友好的交互体验。该控件以其灵活性和强大的功能,深受前端开发者的喜爱。在这个压缩包中,包含的是DTree的核心...

    多种树形菜单

    "多种树形菜单"这一主题聚焦于JavaScript中的dTree控件,它是一个强大且灵活的工具,专门用于创建这种交互式的树形菜单。 dTree控件的核心特性在于它的易用性和可扩展性。首先,dTree支持无限级别的分级,这意味着...

    树形控件 dtree

    【dtree:JavaScript实现的简单树形菜单组件】 在网页开发中,为了更好地组织和展示层级关系复杂的数据,树形控件(Tree View)是一种常用的设计元素。`dtree`是一个专为此目的设计的轻量级JavaScript组件,它提供...

    JavaScript树形菜单控件

    JavaScript树形菜单控件是一种常见的前端交互元素,用于在网页中展示层次结构的数据,比如网站导航、文件系统或组织架构等。"dTree"是其中一个流行的JavaScript库,它提供了创建可扩展、多级的树形菜单功能。在这个...

    JS树形菜单控件-代码-示例

    通过以上解析,我们可以看出,JS树形菜单控件的实现不仅涉及到DOM操作和事件处理,还涉及到数据结构的管理和配置选项的灵活设置。这种控件的使用能够极大地提升Web应用中数据展示的效率和用户体验。理解并掌握这些...

    javascript-tree控件集合 大部分JS树形菜单控件 精心收集

    在给定的标题和描述中,我们看到提到了多个JavaScript实现的树形菜单控件,如dtree、无限级树状菜单、struts+h ibernate树形菜单、treeview、xmltree以及dhtmltree等。接下来,我们将深入探讨这些控件及其在实际应用...

    dtree树形菜单范例.rar

    【dtree树形菜单范例】是一个用于构建多级子节点树形菜单的插件,主要应用于网页设计,尤其适用于网站后台和用户中心的导航。这个插件以其易用性和知名度,成为许多开发者构建层级结构清晰、交互友好的菜单系统的...

    dTree+jquery实现动态树形

    dTree是一个纯JavaScript实现的树形控件,它可以无需依赖任何其他库独立工作,但与jQuery结合使用时,可以更好地利用jQuery提供的DOM操作、事件处理和动画效果。dTree提供了创建、遍历和操作树形结构的API,允许...

    一种dtree树用控件实现的

    dtree是由节点(通常包括父节点和子节点)构成的树形结构,每个节点可以代表一个类别或数据项。用户可以通过点击节点来展开或折叠其子节点,以显示或隐藏更多信息。这种交互方式使用户能够快速浏览和理解复杂的数据...

    js dtree无限级扩展的树形菜单.rar

    描述中提到的“-号风格的经典树形菜单控件”是指在每个节点旁边通常会有一个“-”符号,用户可以通过点击这个符号来展开或折叠对应的子节点。这种视觉表示方式直观易懂,用户可以通过简单的交互操作来控制树的可见...

    dtree实现的树支持多选

    DTree(通常指的是JavaScript实现的树形控件)允许用户通过勾选节点来实现多选功能,提升了用户在大量数据中的选择效率。以下将详细介绍dtree实现多选树的核心知识点: 1. **DHTML与JavaScript基础**:DTree基于...

    ASP.NET AJAX 无限级 JS 树形菜单

    本文将详细介绍如何使用 ASP.NET AJAX 结合 JavaScript 实现一个无限级的树形菜单。此类型的菜单广泛应用于各类网站及应用中,特别是在那些需要展示层级结构数据的场景下。通过本教程的学习,你将能够理解并实现一个...

    几webjs树形菜单

    以下是一些关于“js树形菜单”的核心知识点: 1. **jQuery CheckTree**:压缩包中的`jquery.checktree.js`和`jquery.checktree.0.3b1.js`是基于jQuery库的树形菜单插件。jQuery是一个广泛使用的JavaScript库,它...

    js动态树合集dhtmlXTree和dtree.rar

    "js动态树合集dhtmlXTree和dtree.rar"是一个压缩包,包含两种流行的JavaScript树形控件:dhtmlXTree和dtree。这些控件允许开发者在网页中创建可交互的树状结构,用于数据展示、导航或层级数据管理。 首先,...

    dtree树型控件(纯js)

     目前有很多的树形菜单组件(比如ext),dtree是一种简单易懂的js组件,不需要复杂的操作即可生产,同时支持动态从数据库引入数据。  dTree可以不用添加任何页面而直接用代码实现多个栏目,并可以实现无限分级,下面...

    dtree+ajax异步加载树

    dtree是一款基于JavaScript的树形控件,它能够帮助开发者实现动态、交互式的树状菜单。而Ajax(Asynchronous JavaScript and XML)则是一种在不重新加载整个网页的情况下更新部分网页的技术。当dtree与Ajax结合时,...

    dtree动态树+Javascript右键菜单

    【dtree动态树】是一种基于JavaScript的客户端树形控件,用于在网页中展示层级结构的数据,例如网站导航、文件目录等。...开发者需要理解dtree的API和事件处理机制,才能灵活地构建和定制自己的树形菜单系统。

    ajax,servlet动态加载dtree

    在本项目"ajax,servlet动态加载dtree"中,我们看到的是利用Ajax技术和Servlet实现dtree(一种树形菜单控件)的动态加载。这个项目可能是一个文件管理系统或者目录浏览应用,其中dtree用于展示文件或目录结构,而...

    dtree树控件的资料

    通过dtree,你可以创建出直观、易用的树形界面,提升用户的操作体验。无论是新手还是经验丰富的开发者,都可以通过学习dtree,快速构建出具有层级关系的交互式应用。记得查看提供的dtree相关文件,它们将包含更多...

Global site tag (gtag.js) - Google Analytics