java中如何实现树形节点
解决方案 »
- 做过ajax的高手进来,获取父页面的divId
- request.getParameter("name"),最后显示出来的效果是3个问号???
- 为什么jsp程序修改无效?
- 困扰了几天的setInterval用了之后程序就报错,望高手来救命。。。
- hibernate 数据表之间的级联关系是在数据库端设置,还是只在映射文件写就可以了?
- tomcat与access连连配置
- 问一个简单问题:怎样可以一批批的把文件链接进去?而不是一个个链接?
- 怎样使用javabean?
- 在oracle数据库中取出来的为乱码,怎么回事??
- 请问在设置JSP环境时,在哪里可将apache和tomcat的端口设置成8080、8081?
- ibatis+spring+hessian基础框架的学习时对他们的简单理解
- 如何实现树形结构
MzTreeView 1.0 树形控件 Demo 这个树的节点有1000多个 但速度很快 使用:
1.下载控件,MzTreeView10
2.把MzTreeView10整个目录放置在web工程下(图片,js)
3.在后台建一个 java类(生成字符串返回给前台)
格式如下: tree.nodes["408_1239"]=" text:显示文本; data:id=自己的ID;URL=转向的URl method:alert('');"; !注意分号和 “”号也都要,自己写方法取得数据库要生存树的表所有记录,然后拼凑,一条记录生成一个这样的节点字符串给JS解析 tree是可以指定的树的名称
408 是数据库的父节点id
1239 是自己的id
text 是显示在页面的节点名称
data 跟URL 配和,当点击转向另外地址是 后面自动带参数id=自己的ID;如url.jsp?id=5;
mehod 点击后触发的js方法,可自定义执行 默认解析根节点为0(数据库要设置)java
String sqlStr = "select id,parent_id, name from DREAM_COURSE_CATEGORY where parent_id is not null order by parent_id ";
try {
HibernateDao.getSession().beginTransaction();
conn = HibernateDao.getSession().connection();
stmt = conn.createStatement();
rs = stmt.executeQuery(sqlStr);while ( rs.next()) {s+="tree.nodes['"+rs.getString("parent_id")+"_"+rs.getString("id")+"'] = 'text:"+rs.getString("name")+";method:myfunc(\""+rs.getString("name")+','+rs.getString("id")+"\")';";
}
System.out.println(s);
conn.commit();
}catch( SQLException e){
e.printStackTrace();
}finally{
try{
if( stmt != null ) stmt.close();
if( rs != null ) rs.close();
if( conn != null ) conn.close();
}catch( SQLException e){
e.printStackTrace();
}
}
jsp<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page import="util.*,java.util.*,com.feiji.dto.SysMenuDto,org.dom4j.Document;"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<SCRIPT type="text/javascript" src="<%=basePath %>js/test.js"></SCRIPT>
<SCRIPT type="text/javascript" src="<%=basePath %>js/MzTreeView10.js"></SCRIPT>
<link rel="stylesheet" href="images/total.css" type="text/css"><style>
<style type="text/css">
body, td
{
font-family: 宋体;
font-size: 12px;
}
A:LINK, A:VISITED, A:ACTIVE, A:HOVER
{
color:#000;
text-decoration:none;
font-family:arial;
font-size:12px;
padding-left:2px;
}
</style>
<title>文件</title>
</head><body class="body01"><% %>
<table width="100%" border=0 cellspacing=3 bgcolor="#B8D1F8">
<tr>
<td bgcolor=white valign=top>
<div id=treeviewarea style="background-color: "></div>
<SCRIPT LANGUAGE="JavaScript">
<!--
var tree = new MzTreeView("tree");
tree.setIconPath("/elearn/course/treeImages/");
tree.nodes['0_1'] = 'text:课程目录1';
<%
String tree = (String)request.getAttribute("treeList");
out.print(tree);
%>
document.getElementById('treeviewarea').innerHTML = tree.toString();
function myfunc(n){
window.returnValue= n;
window.close();
}
//-->
</SCRIPT>
</tr>
</table>
</body>
</html>
/// 邦定到树
/// </summary>
private void AddTree()
{
//清空树
this.tvXml.Nodes.Clear();
//创建根节点
TreeNode node = new TreeNode("Student");
//把根添加到树上
this.tvXml.Nodes.Add(node);
//循环读取List中的对象
foreach (Student stu in list)
{
//创建子节点
TreeNode name = new TreeNode("姓名:" + stu.Name);
TreeNode sex = new TreeNode("性别:" + stu.Sex.ToString());
TreeNode age = new TreeNode("年龄:" + stu.Age.ToString());
TreeNode hobby = new TreeNode("爱好:" + stu.Hobby);
//将子节点添加到根节点下面
node.Nodes.Add(name);
//在子节点下面添加内容
name.Nodes.AddRange(new TreeNode[] { sex, age, hobby });
}
}