1. 程式人生 > >java樹和jQuery樹的運用

java樹和jQuery樹的運用

一、java
後臺查詢到需要使用的tree數資料,然後分局tree的格式進行封裝,然後直接使用ztree外掛進行繫結。

資料庫查詢 得到表資料行的集合

    // 模擬資料庫查詢 得到表資料行的集合
    public List<Map<String,Object>> getRows(){

        List<Map<String,Object>> dataList = new ArrayList<Map<String,Object>>();
        Map<String,Object
> row = new HashMap<String,Object>(); row.put("id","1"); row.put("username","玄清"); row.put("invitationid","0"); dataList.add(row); row = new HashMap<String,Object>(); row.put("id","2"); row.put("username","張三"); row.put("invitationid"
,"1"); dataList.add(row); row = new HashMap<String,Object>(); row.put("id","3"); row.put("username","李四"); row.put("invitationid","2"); dataList.add(row); row = new HashMap<String,Object>(); row.put("id","4"); row.put("username"
,"王五"); row.put("invitationid","3"); dataList.add(row); row = new HashMap<String,Object>(); row.put("id","5"); row.put("username","張小明"); row.put("invitationid","4"); dataList.add(row); row = new HashMap<String,Object>(); row.put("id","6"); row.put("username","趙六"); row.put("invitationid","1"); dataList.add(row); return dataList; }

這裡寫圖片描述

將查詢到的資料進行tree封裝

  // 服務端拼接字串,也可直接返回陣列然後在瀏覽器端拼接字串
    public String assembly(List<Map<String,Object>> paramList){

        StringBuffer resultStr = new StringBuffer();
        resultStr.append("[");
        for (Map<String,Object> obj: paramList) {

            // resultStr.append("{'id':" + obj.get("id")+",'pId':" + obj.get("invitationid")+",'name':"+obj.get("username")+"}");
            resultStr.append("{");
            resultStr.append("'id':'" + obj.get("id")+"',");
            if (null == obj.get("invitationid") || "0".equals(obj.get("invitationid")))// 僅展開頂級節點
                resultStr.append("'pId':'0', open:'true',");
            else
                resultStr.append("'pId':'" + obj.get("invitationid")+"', open:'true',");// 展開子級節點
            resultStr.append("'name':'" + obj.get("username")+"'");
            resultStr.append("},");
        }
        // 去除最後一個逗號
        resultStr.deleteCharAt(resultStr.length()-1);
        resultStr.append("]");
        return resultStr.toString();
    }

這裡寫圖片描述

將封裝的tree樹資料在控制檯列印(正式專案將資料返回前端)

// 呼叫方法
    public static void main(String[] args) throws Exception{

        MenuTest01 mt = new MenuTest01();
        List<Map<String,Object>> dataList = mt.getRows();
        System.out.println(mt.assembly(dataList));

    }

這裡寫圖片描述

至此java後臺的資料傳輸就已經搞定了。

二、jQuery樹
ztree官方文件:ztree官網

引用樣式
<link rel="stylesheet" href="../../../css/demo.css" type="text/css">
    <link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type="text/css">
    <script type="text/javascript" src="../../../js/jquery-1.4.4.min.js"></script>
    <script type="text/javascript" src="../../../js/jquery.ztree.core.js"></script>

js呼叫ztree

<SCRIPT type="text/javascript">
        <!--
        var setting = {
            data: {
                simpleData: {
                    enable: true
                }
            },
            callback: {
                //點選事件,查詢節點詳細資訊
                onClick: zTreeOnClick
            }
        };

        function zTreeOnClick(event, treeId, treeNode) {
            alert(treeNode.id + ", " + treeNode.name);
        };


        var serverRetutnData = "[{'id':'1','pId':'0','name':'玄清'},{'id':'2','pId':'1', open:'true','name':'張三'},{'id':'3','pId':'2', open:'true','name':'李四'},{'id':'4','pId':'3', open:'true','name':'王五'},{'id':'5','pId':'4', open:'true','name':'張小明'},{'id':'6','pId':'1', open:'true','name':'趙六'}]";

        serverRetutnData = eval('('+serverRetutnData+')'); // eval js函式  將字串轉換為陣列 具體使用時請考慮瀏覽器相容性


        $(document).ready(function(){
            $.fn.zTree.init($("#treeDemo2"), setting, serverRetutnData);
        });
        //-->
    </SCRIPT>

html程式碼

<div class="content_wrap">
    <div class="zTreeDemoBackground left">
        <ul id="treeDemo2" class="ztree"></ul>
    </div>

</div>

頁面顯示結果
這裡寫圖片描述

點選效果這裡寫圖片描述

相關推薦

javajQuery運用

一、java 後臺查詢到需要使用的tree數資料,然後分局tree的格式進行封裝,然後直接使用ztree外掛進行繫結。 資料庫查詢 得到表資料行的集合 // 模擬資料庫查詢 得到

Java建立二叉排序平衡

建立二叉排序樹,是從前往後掃描陣列,可以不保證高度最小,從頭節點依次向下尋找要插入的適當位置。 建立平衡樹,可以先將陣列進行排序,然後選取中間元素作為根節點,陣列中間元素左邊的元素為根節點的左子樹,陣列中間右邊的元素為根節點的右子樹。 再對右子樹和右子樹選取中間

【資料結構】【Java】BB+區別

B樹和B+樹    1. B樹的定義:    1970年,R.Bayer和E.mccreight提出了一種適用於外查詢的樹,它是一種平衡的多叉樹,稱為B樹,其定義如下:    一棵m階的B樹滿足下列條件:    ⑴ 樹中每個結點至多有m個孩子;    ⑵ 除根結點和葉子結點

深入解析瀏覽器的幕後工作原理(三) 呈現 DOM 的關系

文本 一行 出現 src 格式 關於 放置 顯示 關系 呈現樹和 DOM 樹的關系   呈現器是和 DOM 元素相對應的,但並非一一對應。非可視化的 DOM 元素不會插入呈現樹中,例如“head”元素。如果元素的 display 屬性值為“none”,那麽也不會顯示在呈現

B-B+的應用:數據搜索和數據庫索引

深度 出現 通過 都在 def 查找樹 兩個指針 屬性排序 n+1 B-樹 1 .B-樹定義 B-樹是一種平衡的多路查找樹,它在文件系統中很有用。 定義:一棵m 階的B-樹,或者為空樹,或為滿足下列特性的m 叉樹:⑴樹中每個結點至多有m 棵子樹;⑵若根結點不是葉子結點,

BB+的總結

href 直接插入 也有 新的 img 結束 提高 通過 我們 https://www.cnblogs.com/George1994/p/7008732.html B樹和B+樹的總結 B樹 為什麽要B樹 磁盤中有兩個機械運動的部分,分別是盤片旋轉和磁臂

BB+的插入、刪除圖文詳解

留言 使用 結構 調整 -i 詳細 樹的高度 目的 根據 簡介:本文主要介紹了B樹和B+樹的插入、刪除操作。寫這篇博客的目的是發現沒有相關博客以舉例的方式詳細介紹B+樹的相關操作,由於自身對某些細節也感到很迷惑,通過查閱相關資料,對B+樹的操作有所頓悟,寫下這篇博客以做記錄

BB+

樹的高度 需要 比較 詳細 細節 子類 是我 導致 相關 B樹和B+樹 簡介:本文主要介紹了B樹和B+樹的插入、刪除操作。寫這篇博客的目的是發現沒有相關博客以舉例的方式詳細介紹B+樹的相關操作,由於自身對某些細節也感到很迷惑,通過查閱相關資料,對B+樹的操作有所頓悟,寫下這

B-B+的應用

例如 討論 計算 相關信息 net 基本上 ref CA roc 1 .B-樹定義 B-樹是一種平衡的多路查找樹,它在文件系統中很有用。 定義:一棵m 階的B-樹,或者為空樹,或為滿足下列特性的m 叉樹:⑴樹中每個結點至多有m 棵子樹;⑵若根結點不是葉子結點,則至少有兩

B, B-,B+,B*的區別

cal 查詢 空間 復制 進入 使用 鏈表 有關 但是 B樹: B樹的搜索,從根結點開始,如果查詢的關鍵字與結點的關鍵字相等,那麽就命中; 否則,如果查詢關鍵字比結點關鍵字小,就進入左兒子;如果比結點關鍵字大,就進入 右兒子;如果左兒子或右兒子的指針為空,則報告找不到相應的

子集排列

子集樹 當所給的問題是從n個元素的集合S中找出滿足某種性質的子集時,相應的解空間稱為子集樹。比如,01揹包問題就是子集樹。這類問題通常有2^n個葉子節點,總節點個數是2^(n+1)-1。遍歷子集樹的任何演算法都需要 O(2^n)的時間。 選取數字: #include <stdio.h&g

B-B+的應用 資料搜尋資料庫索引

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

多叉——BB+

目錄   1 介紹 2 B樹 2.1 B樹的定義 2.2 B樹的查詢 2.3 B樹的插入 2.4 B樹的刪除 2.5 B樹的應用 3 B+樹 3.1 定義 3.2 B+樹的插入 3.3 B+樹的刪除 1 介紹 樹家族是為了實現方便

字首( 又名:TRIE、單詞查詢、字典) 字尾(Suffix)

概念 字首樹:將海量字串儲存在一棵樹中。 字尾樹:將一個字串分解成一棵樹。 字首樹 節點的結構體: struct trieNode { bool isEnd;//是否可以作為字串的終結節點 trieNode *child[26]; } 字首樹:

【資料結構學習筆記】二叉其他

基礎定義 一個樹t是一個非空的有限元素的集合,其中一個元素為根(root),其餘的元素(如果有的話)組成t的子樹(subtree) 樹的另一常用術語為級(level)。樹根是1級,其孩子(如果有)是2級,孩子的孩子是3級,等等。 一棵樹的高度(height)或深度(de

深入理解資料庫索引採用BB+的原因

         前面幾篇關於資料庫底層磁碟檔案讀取,資料庫索引實現細節進行了深入的研究,但是沒有串聯起來的講解為什麼資料庫索引會採用B樹和B+樹而不是其他的資料結構,例如平衡二叉樹、連結串列等,因此,本文打算從資料庫檔案儲存以及讀取說起,講解資料庫索引的由來。      

演算法班筆記 第五章 二叉基於的DFS

第五章 二叉樹和基於樹的DFS 在這一章節的學習中,我們將要學習一個數據結構——二叉樹(Binary Tree),和基於二叉樹上的搜尋演算法。 在二叉樹的搜尋中,我們主要使用了分治法(Divide Conquer)來解決大部分的問題。之所以大部分二叉樹的問題可以使用分治法

字典-字首字尾

1 引言 今天主要看的是樹中的兩個比較重要的資料結構——字首樹和字尾樹。在此之前,先來看兩個問題。(參考部落格:從Trie樹(字典樹)談到字尾樹) 1.1 問題1 一個文字檔案,大約有一萬行,每行一個詞,要求統計出其中最頻繁出現的前10個詞,請給出思想,給出

經典資料結構 :BB+詳細解析

維基百科對B樹的定義為“在電腦科學中,B樹(B-tree)是一種樹狀資料結構,它能夠儲存資料、對其進行排序並允許以O(log n)的時間複雜度執行進行查詢、順序讀取、插入和刪除的資料結構。B樹,概括來說是一個節點可以擁有多於2個子節點的二叉查詢樹。與自平衡二叉查詢樹不同,

【機器學習筆記27】CART演算法-迴歸分類

基本概念 分類和迴歸樹(classification and regression tree, CART) 是應用廣泛的決策樹學習方法,由特徵選擇、樹的生成和剪枝組成,既可以用做分類也可以用作迴歸。 迴歸樹 迴歸樹的定義 假設X和Y分別作為輸入和輸出變數,那麼