欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 純jsp打造無限層次的樹代碼

純jsp打造無限層次的樹代碼

熱門標簽:淮南騰訊地圖標注 漯河辦理400電話 商丘百應電話機器人有沒有效果 黃石智能營銷電銷機器人效果 怎樣把地圖標注出來 開封便宜外呼系統報價 電話機器人的特色和創新 騰訊地圖標注商戶改名注冊入駐 地圖標注人員兼職
做樹并不復雜,但我們通常做的是2層或3層,那樣的數據一般來自多個表,比如:部門,員工
然而這種自連接的表,其沒有確定的層次,可能是無限多級
比如:a是b的上級,b是c的上級,c是d的上級...
每個上級有幾個下級,下級的層次,都是動態的
解決這個問題,其實主要用到js的知識
可以使用div的innerHTML屬性
當然也可以用table,用append的方法
下面就用div的innerHTML屬性來實現
主要思路是通過super,在document中查找id與自身super關聯的div,這個div就是自身的上級,把自己附加到這個div中就可以了
另外,通過設置自己的title,保存了自己上級的id
為了看到層層縮進效果,設置了div的style為左邊距有10px
+ 和 - 通過div中的span實現,這里改變的是span的innerHTML,也可以換為用圖片,改變img的src即可
而在點擊這些 + 或 - 的時候,會調用一個js函數,傳入自己的id,這個函數會在document的所有div中查找自己的下級,由于每個div的title保存了其上級的id,所以只有找到那些title為自己id的就可以了
找到這些下級,就設置其隱藏或顯示即可
建表
use tempdb
go
create table tb
(
id int primary key,
name varchar(50) not null,
super int references tb
)
insert into tb values (1,'總公司',null);
insert into tb values (2,'長沙分公司',1);
insert into tb values (3,'株洲分公司',1);
insert into tb values (4,'湘潭公司',1);
insert into tb values (5,'長沙東區分點',2);
insert into tb values (6,'長沙南區分點',2);
insert into tb values (7,'湘潭東區分點',4);
insert into tb values (8,'長沙東區分點一處',5);
insert into tb values (9,'長沙東區分點二處',5);
insert into tb values (10,'長沙東區分點三處',5);
insert into tb values (11,'長沙南區分點一處',6);
insert into tb values (12,'長沙南區分點二處',6);
insert into tb values (13,'湘潭東區分點一處',7);
insert into tb values (14,'湘潭東區分點二處',7);
insert into tb values (15,'長沙東區分點一處一門市部',8);
insert into tb values (16,'長沙東區分點一處二門市部',8);
select id,name,isnull(super,0) as super from tb order by super
-------------------------------------------------------------------------------------------------------------------------
tree.jsp文件
%@ page language="java" import="java.sql.*,java.util.*" pageEncoding="gbk" contentType="text/html; charset=gbk" isELIgnored="false"%>
%
//獲取數據庫的數據,并保存為雙層集合,然后放到pageContext中
//這樣與使用dao和servlet得到的,放到request中的方式是一致的
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url = "jdbc:microsoft:sqlserver://localhost:1433;databasename=tempdb";
Connection cn = DriverManager.getConnection(url,"sa","sa");
Statement st = cn.createStatement();
String sql = "select id,name,isnull(super,0) as super from tb order by super";
ResultSet rs = st.executeQuery(sql);
ArrayList lstAll = new ArrayList();
ArrayList lstLine;
while(rs.next()) {
lstLine = new ArrayList();
lstLine.add(rs.getString(1));
lstLine.add(rs.getString(2));
lstLine.add(rs.getString(3));
lstAll.add(lstLine);
}
pageContext.setAttribute("lstAll",lstAll);
%>
script>
//初始化樹
function ini() {
var str = "${lstAll}";
var ary = str.split("], [");
var i,j;
var len = ary.length;
var ary2,len2;
var str,str2,obj;
for(i=0;ilen;i++) {
ary[i] = ary[i].replace("[[","");
ary[i] = ary[i].replace("]]","");
ary2 = ary[i].split(", ");
if(ary2[2]=="0") {
//頂層:設置其上級為div0
obj = document.getElementById("div0");
//定義自身內容,設置自身可見 -- display:block
//span用于確定 + 或 - ,并且ope函數用于點擊時顯示或隱藏下級
str2 = "div style='display:block' id='div" + ary2[0] + "'>span id='span" + ary2[0] + "' onclick='ope(" + ary2[0] + ")'>+/span>nbsp;nbsp;" + ary2[1] + "/div>";
}
else {
//其他:查找其上級,即:ID為 'div' + ary2[2] 的div
//如:如果ary2[2]為3,那么其上級為 div3
obj = document.getElementById("div" + ary2[2]);
//定義自身內容,其中title用于存儲其上級ID,設置自身不可見 -- display:none
str2 = "div style='display:none' id='div" + ary2[0] + "' title='" + ary2[2] + "'>span id='span" + ary2[0] + "' onclick='ope(" + ary2[0] + ")'>+/span>nbsp;nbsp;" + ary2[1] + "/div>";
}
str = obj.innerHTML; //獲取上級原來的內容
str = str + str2; //附加當前div
obj.innerHTML = str; //設置上級的新內容
}
}
//點某個節點時,展開或隱藏其下級
function ope(id) {
//首先改變 + 和 -
var obj = document.getElementById("span" + id);
if(obj.innerHTML == "+") {
obj.innerHTML = "-";
}
else {
obj.innerHTML = "+";
}
//然后找到下級,并改變其可見性
var objs = document.getElementsByTagName("div"); //獲取所有的div
var len = objs.length;
//遍歷這些div,找到所有的下級,即: title為id 的div,對于這些下級
//如果原來是隱藏,就讓其顯示;否則,隱藏--通過設置其style的display即可
var i,title;
for(i=0;ilen;i++) {
obj = objs[i];
title = obj.title;
if(title==null || isNaN(title)) {
continue;
}
if(parseInt(title)==parseInt(id)) {
if(obj.style.display=="none") {
obj.style.display = "block";
}
else {
obj.style.display = "none";
}
}
}
}
/script>
style>
div{margin-left:10px;color:darkblue}
span{color:red;cursor:hand}
/style>
body onload="ini();">
div id="div0">/div>
------------------------------------------------------------------------------------------------------------------------------
大家可以進一步想,實際點每個內容的時候,一般會鏈接到某個url,那么,這里怎么處理?
如果你熟悉html和js,當然就是很容易的
思路:數據庫中該表增加一個字段,url,定義鏈接地址
在js中修改代碼
大家還可以考慮把它做成標簽,更方便

標簽:拉薩 大興安嶺 馬鞍山 亳州 武威 岳陽 鄭州 紅河

巨人網絡通訊聲明:本文標題《純jsp打造無限層次的樹代碼》,本文關鍵詞  純,jsp,打造,無限,層次,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《純jsp打造無限層次的樹代碼》相關的同類信息!
  • 本頁收集關于純jsp打造無限層次的樹代碼的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    日本亚洲欧美天堂免费| 亚洲天堂2024| 国产一区在线观看免费| 26uuu久久天堂性欧美| 免费日韩伦理电影| 国产毛片毛片毛片毛片毛片毛片| 欧美日韩性生活| 亚洲高清视频在线| 一区二区在线免费观看视频| 在线观看av一区| 亚洲国产视频直播| 亚洲色图欧美另类| 91精品国产免费| 人妖欧美一区二区| 一级黄色性视频| 国产亚洲成aⅴ人片在线观看| 国内一区二区视频| 91av手机在线| 中文字幕中文字幕一区| bt7086福利一区国产| 欧美性生活大片视频| 亚洲电影激情视频网站| 亚洲天堂美女视频| 精品三级av在线| 国内精品伊人久久久久av一坑| 91香蕉视频污在线观看| 国产精品传媒入口麻豆| 91丝袜美腿高跟国产极品老师| 欧美日韩精品一区视频| 日本欧美大码aⅴ在线播放| 中国女人特级毛片| 中文字幕欧美日韩一区| av一区二区三区在线| 欧美日韩精品免费| 免费视频一区二区| 九九精品视频免费| 亚洲综合免费观看高清完整版在线| 美女伦理水蜜桃4| 欧美大肚乱孕交hd孕妇| 国产精品一区二区x88av| 一本大道综合伊人精品热热| 性做久久久久久久久| 手机av免费看| 国产精品久久久久一区二区三区 | 国产一区美女在线| www欧美com| 亚洲成av人片观看| 国产激情第一页| 国产亚洲精久久久久久| 宇都宫紫苑在线播放| 日韩一区二区电影| 福利一区二区在线观看| 在线成人av网站| 国产河南妇女毛片精品久久久| 91黄色免费观看| 乱一区二区av| 在线亚洲人成电影网站色www| 日韩成人免费电影| 日本a级片视频| 免费精品视频在线| 色狠狠综合天天综合综合| 日本大胆欧美人术艺术动态| 午夜精品一区二区三区视频| 视频一区在线播放| 日本黄色片免费观看| 日韩va亚洲va欧美va久久| 在线看的片片片免费| 日韩中文字幕区一区有砖一区| 成年人看的免费视频| 亚洲成人动漫在线免费观看| 女人18毛片毛片毛片毛片区二 | 欧美日韩国产免费一区二区| 韩国一区二区三区| 欧美日韩国产成人在线91| 国产一区二区在线免费观看| 欧美日韩色一区| 丁香六月综合激情| 精品国产区一区| 亚洲少妇中文字幕| 国产精品国产自产拍在线| 91精品人妻一区二区| 亚洲精品一二三| 999精品久久久| 日本不卡123| 欧美日韩精品系列| 成人国产一区二区三区精品| 久久丝袜美腿综合| 国产 中文 字幕 日韩 在线| 亚洲精选视频在线| 中文字幕求饶的少妇| 麻豆成人91精品二区三区| 欧美日韩国产一区| 99热这里都是精品| 国产目拍亚洲精品99久久精品| 亚洲av网址在线| 亚洲午夜日本在线观看| 色婷婷久久久亚洲一区二区三区 | 蜜臀久久99精品久久久画质超高清 | 国产喷白浆一区二区三区| 久久久国产精品无码| 一区二区三区四区不卡在线| 国产成人自拍网站| 国产精品自拍网站| 久久一留热品黄| 精品无码在线视频| 亚洲成av人片在www色猫咪| 色老汉一区二区三区| 国产成人免费在线视频| www成人在线观看| 一本色道久久hezyo无码| 一区二区三区高清在线| 99精品久久久久| 国产成人精品免费| 国产欧美精品一区二区色综合| 丰满的亚洲女人毛茸茸| 久久国产免费看| 精品日韩在线观看| 免费看黄色的视频| 麻豆精品一区二区av白丝在线| 日韩欧美二区三区| 国产艳俗歌舞表演hd| 日韩成人免费电影| 欧美电影免费观看高清完整版| 特级西西人体wwwww| 免费在线观看一区| 精品国产乱码久久久久久久久| 丰满少妇一区二区| 人妻无码中文久久久久专区| 国产日产精品1区| 性生交大片免费全黄| 高清久久久久久| 国产精品国产精品国产专区不蜜 | 日韩精品久久理论片| 欧美一卡二卡在线| 久久人人爽人人爽人人片| 蜜乳av一区二区| ww亚洲ww在线观看国产| 国产福利在线导航| 粗大黑人巨茎大战欧美成人| 亚洲视频免费看| 欧美体内she精高潮| 国产香蕉精品视频| 日韩av在线免费观看不卡| 精品美女在线观看| 国产aaaaaaaaa| 成人激情av网| 亚洲综合在线视频| 日韩三级.com| 四虎影视1304t| 99久久精品费精品国产一区二区| 亚洲黄色免费网站| 日韩一卡二卡三卡国产欧美| 一区二区三区伦理片| 风流少妇一区二区| 一区二区三区四区在线播放| 5566中文字幕一区二区电影| 久久久久久久久久久久| 国产999精品久久久久久| 一区二区三区在线观看视频| 91精品国产综合久久蜜臀| x88av在线| 99re热这里只有精品视频| 午夜激情一区二区| 国产午夜精品一区二区三区嫩草| 色综合天天综合色综合av| 亚洲自拍偷拍精品| 精品在线你懂的| 亚洲免费成人av| 日韩精品一区二区在线| 无码黑人精品一区二区| 在线播放第一页| 国产一区在线精品| 夜夜嗨av一区二区三区中文字幕| 日韩欧美国产一区二区三区 | 欧美欧美欧美欧美| 精品人妻无码一区二区三区换脸| 国v精品久久久网| 天天色天天操综合| 中文字幕不卡在线播放| 欧美精品在欧美一区二区少妇| 国产人妻大战黑人20p| bt欧美亚洲午夜电影天堂| 秋霞成人午夜伦在线观看| 国产精品久久国产精麻豆99网站| 欧美喷水一区二区| 久久人妻无码aⅴ毛片a片app| 久久无码专区国产精品s| 丝袜美腿中文字幕| 老司机精品视频在线| 综合久久国产九一剧情麻豆| 91精品国产91久久综合桃花| 免费高清在线观看电视| 日本一区二区免费视频| 国产麻豆午夜三级精品| 亚洲mv在线观看| 国产精品国产a级| 精品va天堂亚洲国产| 欧美视频一区二| 任我爽在线视频| 欧美老熟妇乱大交xxxxx|