做者:wallimn

通過這幾天對DHTMLXTree的折騰總算是有點眉目了。領導催得緊。組長緊的催。css

唉,把握此次機會來好好總結一下DHTMLXTree。html

仍是老套路。首先來簡單瞭解一下DHTMLXTree。前端

DHTMLXTree是DHX系列當中關於樹的部分。另外還有像DHTMLXGrid控件。基本都是使用js來實現tree的樣式和數據載入。支持的格式有xml、json。有下面幾個特色:java

特色

  • 支持界面的拖拽mysql

  • 效率高web

    在載入數據量比較大的時候能夠高速的載入,性能比較好。spring

  • 界面樣式特別豐富sql

  • API 操做起來比較簡單數據庫

先來看看效果圖編程

這裏寫圖片描寫敘述

主要代碼,這裏僅列出部分基本的代碼,有興趣的朋友能夠親自試試

function loadTree() { //置空將要放置tree的div document.getElementById("doctree_box").innerHTML = ""; //設置tree對象大小 var tree = new dhtmlXTreeObject("doctree_box", "100%", "100%", 0); //顯示樣式 tree.setImagePath("${ctx}/codebase/imgs/"); //點擊tree節點觸發的事件 tree.setOnClickHandler( function(id) { var type = tree.getUserData(id, "type"); if(null==type||""==type){//||"1"==type rightFrame.location.href = "loadtreeservice!list.action?viewflag=1&funmenuId=${funmenuId}"; return; }else{ openPathDocs(id); } }); tree.setXMLAutoLoadingBehaviour("function"); //當樹調整本身主動載入樹(用來載入下一級菜單) tree.setXMLAutoLoading(function(item_id){ var id = item_id; //獲取userdata節點的type屬性的值 var type = tree.getUserData(item_id, "type"); item_id = item_id.substring(0,item_id.indexOf('_')); tree.loadXML("loadtreeservice!open_tree.action?

id="+item_id+"&type="+type + "&itemid="+id+"&funmenuId=${funmenuId}"); }); //初始化tree tree.loadXML("loadtreeservice!init_tree.action?d=" + Math.random(), function() { tree.openItem("${parentId}"); }); }

以上是用來載入tree的前臺js,事實上主要就是這裏。後臺能夠依據系統需要用xml或者json來返回數據,

下面是一種xml格式形式。

public String inittree_() {

    StringBuffer sb = new StringBuffer();

    Department root = departmentManager
            .getDeptById(depId);
    //拼接xml格式
    sb.append("<?xml version=\"1.0\" encoding='utf-8'?><tree id=\"0\"><item id=\""+ root.getId() + "\" text=\"" + root.getName() + "\">");
    //拼接內部item的數據
    //格式:<item id="**" text="顯示的文字"></item>
    buildTree(sb, list);

    sb.append("</item></tree>");

    renderXML(sb.toString(), "UTF-8");

    return null;

}

這裏假設存在tree之間的嵌套的狀況就需要在tree的id上進行處理。

注意事項:

  • 根結點的tree的id始終都是 0 。
  • 需要將tree之間進行嵌套的時,需要將子樹的id設置爲上一節點的id_1.以此類推,id_2.這樣保證兩棵樹能夠嵌套在一塊兒顯示。

常見錯誤

  • load xml error。 這個錯誤是表示返回的數據不是xml格式的數據,拼接的過程當中有問題。

  • XML Refer to not existing parent error 。這個是在使用tree嵌套的時候。id之間的匹配錯誤,子tree的沒法找到父節點。

此次這個tree確實讓我很是受傷啊。仍是在調試的時候太過急躁,歸根結底仍是技術積累。

# 爲將之道,當先治心,泰山崩於前而色不變,麋鹿興於左而目不瞬。共勉! #

版權聲明:本文爲博主原創文章,未經博主贊成不得轉載。
  • 本文已收錄於下面專欄:

樹形展現數據——dhtmlxTree的使用

在Java Web項目開發中,通常用JSP作前臺數據展現。後臺經過SSH框架來進行高效開發,有流程的控制。業務的處理和對數據庫的各類處理,而數據則存放在Oracle等選擇的數據庫中。現在你們想這樣一個...
  • liujiahan629629
  • liujiahan629629
  • 2014年04月03日 00:45
  • 20878

怎樣使用dhtmlxtree 和Json 數據格式建立和使用一棵tree

(聲明:本人自以爲在Java界僅僅是個不起眼的小菜鳥。若哪裏有疏忽或者出錯的地方還請各位海涵並且幫忙改正,最主要但願本身的學習中遇到的問題能很是好的幫助大家) 先簡介下dhtmlxtree: dthm...
  • quniandongtian
  • quniandongtian
  • 2014年02月04日 09:54
  • 2305

dhtmlxtree.js

  • 2010年08月12日 17:17
  • 68KB
  • 下載

頁面樹形控件dhtmlxTree、mztreeview及xtree比較分析

/***********本人原創,歡迎轉載,轉載請保留本人信息*************/ 做者:wallimn 電郵:wallimn@sohu.com 博客:http://wallimn.bo...
  • wallimn
  • wallimn
  • 2006年11月21日 09:51
  • 9799

樹型控件dhtmlxtree使用注意事項~

  • piaolankeke
  • piaolankeke
  • 2010年04月07日 13:23
  • 3275

dhtmlXTree 中文API

版本號:           struts2.1.6,hibernate3.3.2,spring2.5 jar包: 環境:Struts+hibernate+spring+mysql           ...
  • java_cxrs
  • java_cxrs
  • 2010年10月29日 09:51
  • 10000

dhtmlTree例子

  • 2010年03月25日 17:33
  • 1.33MB
  • 下載

樹形展現數據——dhtmlxTree的使用

在Java Web項目開發中,通常用JSP作前臺數據展現,後臺經過SSH框架來進行高效開發,有流程的控制,業務的處理和對數據庫的各類處理。而數據則存放在Oracle等選擇的數據庫中。現在你們想這樣一個...
  • liujiahan629629
  • liujiahan629629
  • 2014年04月03日 00:45
  • 20878

怎樣給元素綁定click點擊事件

最簡單的莫過於使用click方法: 1 2 3     var btn ...
  • aerchi
  • aerchi
  • 2014年04月26日 10:08
  • 7057

Android給TextView加入點擊事件

1.界面 首先設定TextView的clickable屬性爲true。

可以在佈局文件裏進行設定。比方: ...

  • qq_29134495
  • qq_29134495
  • 2016年05月14日 01:16
  • 2919
相關文章
相關標籤/搜索