<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    http://www.tkk7.com/ebecket 返還網(wǎng)
    隨筆-140  評論-11  文章-131  trackbacks-0

    Dtree+Jquery動態(tài)生成樹節(jié)點.


    最近有朋友問我一個動態(tài)生成樹怎么做.后來就用Dtree  js組件和Jquery實現(xiàn)了一個demo給他.現(xiàn)在貼出來給初學(xué)者做些參考.

     

    1.先來介紹一下. dtree 的用法.(我引用了以前我收集的一篇文章.還比較詳細(xì),出處不記得啦).文章下面會附帶dtree用法的例子.

             Dtree目錄樹的總結(jié)

                      一:函數(shù)

                               1:頁面中
                                  tree.add(id,pid,name,url,title,target,icon,iconOpen,open);
                                      參數(shù)說明:
                                                  id         :節(jié)點自身的id
                                                  pid       :節(jié)點的父節(jié)點的id
                                                  name    :節(jié)點顯示在頁面上的名稱
                                                  url        :節(jié)點的鏈接地址
                                                  title      :鼠標(biāo)放在節(jié)點上所出現(xiàn)的提示信息
                                                  target   :節(jié)點鏈接所打開的目標(biāo)frame(如框架目標(biāo)mainFrame,_blank,_self 類)
                                                  icon      :節(jié)點關(guān)閉時的顯示圖片的路徑
                                                  iconOpen:節(jié)點打開時的顯示圖片的路徑
                                                  open    :布爾型,節(jié)點是否打開(默認(rèn)為false)
                                                 注:open項:頂級節(jié)點一般采用true,即pid是-1的節(jié)點

                                2:dtree.js文件中
                                                 約87-113行是一些默認(rèn)圖片的路徑,注意要指對。


    二:頁面中的書寫
              1:默認(rèn)值的書寫規(guī)則(從左至右,依次省略)
                              即 tree.add(id,pid,name,url);后面5個參數(shù)可以省略
              2:有間隔時的默認(rèn)值(如存在第6個參數(shù),但第5個參數(shù)想用默認(rèn)值)
                             即 tree.add(id,pid,name,url,"",target);必須這樣寫
             3:樣式表
               (1):可以將dtree.css中的樣式附加到你的應(yīng)用中的主css中,如a.css
               (2):也可以同時引用dtree.css與a.css兩個文件,但前提條件是兩個css文件中不能有重復(fù)的樣式
         

    Html代碼 復(fù)制代碼
    1. <link href="/jingjindatabase/pub/css/a.css" rel="stylesheet" type="text/css" />  
    2. <link href="/jingjindatabase/pub/css/dtree.css" rel="stylesheet" type="text/css" />  

              4:頁面代碼書寫的位置是:一般寫在表格的td之中

    Javascript代碼 復(fù)制代碼
    1. <script type="text/javascript" src="/myMobanGis/pub/js/dtree.js"></script>   
    2. <script type="text/javascript">   
    3. tree = new dTree('tree');   
    4. tree.add("1","-1","京津","","","","","",true);   
    5. tree.add("11","1","A","","","","","",true);   
    6.  tree.add("110","11","A-1","content.jsp?moduleName=XXX","","mainFrame");   
    7.  tree.add("111","11","A-2","javascript:void(0)","","鏈接在哪里顯示");   
    8.  tree.add("112","11","A-3","javascript:void(0)","","mainFrame");   
    9.  tree.add("113","11","A-4","/.jsp","","mainFrame");   
    10.  tree.add("114","11","A-5","/.jsp","","mainFrame");   
    11.  tree.add("115","11","A-6","/.jsp","","mainFrame");   
    12.     
    13. tree.add("12","1","B","","","","","",true);   
    14.  tree.add("121","12","B-1","javascript:調(diào)用本頁內(nèi)的js函數(shù)","","mainFrame");   
    15.  tree.add("122","12","B-2");   
    16. tree.add("13","1","C","","","","","",true);   
    17.  tree.add("131","13","C-1","javascript:void(0)","","mainFrame");   
    18.  tree.add("132","13","C-2","javascript:void(0)","","mainFrame");   
    19.  tree.add("133","13","C-3","javascript:void(0)","","mainFrame");   
    20. tree.add("14","1","D","","","","","",true);   
    21.  tree.add("141","14","D-1","javascript:void(0)","","mainFrame");   
    22. document.write(tree);   
    23. </script>  

     說明:這是靜態(tài)的代碼,動態(tài)的可用循環(huán)加入。其他 tree.add(id,pid,name,url,"","","","",true);

     

    三:css文件的注解
    1:dtree.css

    Css代碼 復(fù)制代碼
    1. .dtree {//定義目錄樹節(jié)點的字體,字號,顏色   
    2.  font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;   
    3.  font-size: 12px;   
    4.  color: #006600;   
    5.  white-space: nowrap;   
    6. }   
    7. .dtree img {//定義選用節(jié)點圖標(biāo)的樣式,位置   
    8.  border: 0px;   
    9.  vertical-align: middle;   
    10. }   
    11. .dtree a {//   
    12.  color: #006600;   
    13.  text-decoration: none;   
    14. }   
    15. .dtree a.node, .dtree a.nodeSel {   
    16.  white-space: nowrap;   
    17.  padding: 0px 0px 0px 0px;   
    18. }   
    19. .dtree a.node:hover, .dtree a.nodeSel:hover {   
    20.  color: #006600;   
    21.  text-decoration: none;   
    22. }   
    23. .dtree a.nodeSel {   
    24.  background-color: #c0d2ec;   
    25. }   
    26. .dtree .clip {   
    27.  overflow: hidden;   
    28. }  

     

    Javascript代碼 復(fù)制代碼
    1. a = new dTree('a');   
    2. a.config.useStatusText=true;   
    3. a.config.closeSameLevel=true;   
    4. a.config.useCookies=false;   
    5. a.add(0,-1,'Tree example','javascript: void(0);');   
    6. a.add(1, 0,'Node 1','javascript:void(0);');   
    7. a.add(2, 1,'Node 2','javascript:void(0);');   
    8. a.add(3, 1,'Node 3','javascript:void(0);');   
    9. a.add(4, 0,'Node 4','javascript:void(0);');   
    10. a.add(5, 4,'Node 5','javascript:void(0);');   
    11. a.add(6, 4,'Node 6','javascript:void(0);');   
    12. a.add(7, 2,'Node 7','javascript:void(0);');   
    13. a.add(8, 6,'Node 8','javascript:void(0);');   
    14. a.add(9, 1,'Node 9','javascript:void(0);');   
    15. a.add(10, 2,'Node 10','javascript:void(0);');   
    16. a.add(11, 8,'Node 11','javascript:void(0);');   
    17. a.add(12, 2,'Node 12','javascript:void(0);');   
    18. a.add(13, 9,'Node 13','javascript:void(0);');   
    19. a.add(14, 4,'Node 14','javascript:void(0);');   
    20. a.add(15, 2,'Node 15','javascript:void(0);');   
    21. a.add(16, 1,'Node 16','javascript:void(0);');   
    22. a.add(17, 4,'Node 17','javascript:void(0);');   
    23. a.add(18, 6,'Node 18','javascript:void(0);');   
    24. a.add(19, 7,'Node 19','javascript:void(0);');   
    25. document.write(a);   
    26.             
    27.    

          tree2.jsp   demo中的一個jsp頁面. 靜態(tài)的生成一棵樹. (二級節(jié)點)

           

    Java代碼 復(fù)制代碼
    1. <%@ page language="java" pageEncoding="utf-8"%>   
    2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">   
    3. <html>   
    4.     <head>   
    5.         <title>樹形結(jié)構(gòu)_____普通生成樹的方式</title>   
    6.         <link rel="stylesheet" href="dtree.css" type="text/css"></link>   
    7.         <script type="text/javascript" src="dtree.js"></script>   
    8.         <script>   
    9.                /*     
    10.                     tree.add(id,pid,name,url,title,target,icon,iconOpen,open);  
    11.                     id        :節(jié)點自身的id  
    12.                     pid       :節(jié)點的父節(jié)點的id  
    13.                     name      :節(jié)點顯示在頁面上的名稱  
    14.                     url       :節(jié)點的鏈接地址  
    15.                     title     :鼠標(biāo)放在節(jié)點上所出現(xiàn)的提示信息  
    16.                     target    :節(jié)點鏈接所打開的目標(biāo)frame(如框架目標(biāo)mainFrame或是_blank,_self之類)  
    17.                     icon      :節(jié)點關(guān)閉時的顯示圖片的路徑  
    18.                     iconOpen  :節(jié)點打開時的顯示圖片的路徑  
    19.                     open      :布爾型,節(jié)點是否打開(默認(rèn)為false)  
    20.                     ------------------------------------------------  
    21.                     東城區(qū)、西城區(qū)、崇文區(qū)、宣武區(qū)、朝陽區(qū)、豐臺區(qū)、石景山區(qū)、  
    22.                     海淀區(qū)、門頭溝區(qū)、房山區(qū)、通州區(qū)、順義區(qū)、 昌平區(qū)、  
    23.                    大興區(qū)、懷柔區(qū)、平谷區(qū) 、 密云縣、延慶縣  
    24.                    ------------------------------------------------  
    25.                 */  
    26.         </script>   
    27.                 <script type="text/javascript">   
    28.                  tree = new dTree('tree');//創(chuàng)建一個對象.   
    29.                  tree.add("1","-1","中國","","","","","",false);   
    30.                  tree.add("11","1","北京","","","","","",false);   
    31.                  tree.add("110","11","東城區(qū)","連接地址可以從數(shù)據(jù)庫里面動態(tài)查詢出來..","東城區(qū)","打開目標(biāo)位置");   
    32.                  tree.add("111","11","西城區(qū)","連接地址可以從數(shù)據(jù)庫里面動態(tài)查詢出來..","","鏈接在哪里顯示");   
    33.                  tree.add("112","11","崇文區(qū)","連接地址可以從數(shù)據(jù)庫里面動態(tài)查詢出來..","","mainFrame");   
    34.                  tree.add("113","11","宣武區(qū)","","","_blank");   
    35.                  tree.add("114","11","朝陽區(qū)","/.jsp","","mainFrame");   
    36.                  tree.add("115","11","豐臺區(qū)","/.jsp","","mainFrame");   
    37.                  tree.add("116","11","石景山區(qū)","/.jsp","","mainFrame");   
    38.                  tree.add("117","11","海淀區(qū)","/.jsp","","mainFrame");   
    39.                  tree.add("118","11","門頭溝區(qū)","/.jsp","","mainFrame");   
    40.                  tree.add("119","11","房山區(qū)","/.jsp","","mainFrame");   
    41.                  tree.add("120","11","通州區(qū)","/.jsp","","mainFrame");   
    42.                  tree.add("121","11","順義區(qū)","/.jsp","","mainFrame");    
    43.                  tree.add("122","11","昌平區(qū)","/.jsp","","mainFrame");   
    44.                  tree.add("123","11","大興區(qū)","/.jsp","","mainFrame");   
    45.                  tree.add("124","11","懷柔區(qū)","/.jsp","","mainFrame");   
    46.                  tree.add("125","11","平谷區(qū)","/.jsp","","mainFrame");   
    47.                  tree.add("126","11","延慶縣","/.jsp","","mainFrame");   
    48.                  tree.add("127","11","密云縣","/.jsp","","mainFrame");   
    49.                  //==================================================   
    50.                  tree.add("12","1","湖南","","","","","",false);   
    51.                  tree.add("121","12","株洲","javascript:調(diào)用本頁內(nèi)的js函數(shù)","","mainFrame");   
    52.                  tree.add("122","12","長沙");   
    53.                 //====================================================   
    54.                  tree.add("13","1","湖北","","","","","",false);   
    55.                  tree.add("131","13","武漢","javascript:void()","","mainFrame");   
    56.                  tree.add("132","13","宜昌","javascript:void()","","mainFrame");   
    57.                  tree.add("133","13","孝感","javascript:void()","","mainFrame");   
    58.                  //===================================================      
    59.                  tree.add("14","1","廣東","","","","","",false);   
    60.                  tree.add("141","14","佛山","javascript:void()","","mainFrame");   
    61.                  document.write(tree);   
    62.                 </script>   
    63.     </head>   
    64.     <body>   
    65.     </body>   
    66. </html>  

     

             不羅嗦啦..上面的只是讓你大概了解一下.dtree怎么用.

     

        dtree+JQuery動態(tài)生成樹.思路其實很簡單...  首先把樹的節(jié)點信息存儲到數(shù)據(jù)庫,然后在servlet或jsp中獲取數(shù)據(jù)庫表中的數(shù)據(jù),把這些信息寫成在xml文件中.然后界面jsp頁面通過JQuery實現(xiàn)對改servlet的請求.并且回調(diào)方法中接受xml數(shù)據(jù)對象.并且遍歷xml文件,取得xml文件中的節(jié)點的屬性或文本數(shù)據(jù).再循環(huán)的對dtree添加節(jié)點.。

     

    1 . 在 MYSQL 中的test數(shù)據(jù)庫中創(chuàng)建表.tree_table. 

         SQL語句.

    Sql代碼 復(fù)制代碼
    1. tree_table  CREATE TABLE `tree_table` (                       
    2.               `id` int(11) NOT NULL auto_increment,           
    3.               `nodeId` varchar(12) NOT NULL  ,       
    4.               `parentId` varchar(12) NOT NULL  ,     
    5.               `hrefAddress` varchar(85)  ,           
    6.               `nodeName` varchar(20)  ,              
    7.               PRIMARY KEY  (`id`)                             
    8.             ) ENGINE=InnoDB DEFAULT CHARSET=gbk      

     

    2.連接數(shù)據(jù)庫的類.主要是讀取表中的數(shù)據(jù).

           

    Java代碼 復(fù)制代碼
    1. package com.dao;   
    2.   
    3. import java.sql.Connection;   
    4. import java.sql.DriverManager;   
    5. import java.sql.PreparedStatement;   
    6. import java.sql.ResultSet;   
    7. import java.sql.SQLException;   
    8. import java.util.ArrayList;   
    9.   
    10. public class DaoTest {   
    11.     Connection con = null;   
    12.   
    13.     public Connection getConnection() {   
    14.         Connection conn = null;   
    15.         String url = "jdbc:mysql://localhost/test?useUnicode=true&amp;characterEncoding=gbk";   
    16.         String user = "root";   
    17.         String password = "admin";   
    18.         try {   
    19.             if (conn == null) {   
    20.                 Class.forName("com.mysql.jdbc.Driver").newInstance();   
    21.                 conn = DriverManager.getConnection(url, user, password);   
    22.             }   
    23.         } catch (Exception e) {   
    24.             System.out.println("連接失敗");   
    25.             return null;   
    26.         } finally {   
    27.             url = null;   
    28.             user = null;   
    29.             password = null;   
    30.         }   
    31.         return conn;   
    32.     }   
    33.   
    34.     public ArrayList<Nodes> getNodeInfo() {   
    35.         String sql = "select nodeId ,parentId ,hrefAddress ,nodeName from tree_table order by id ";   
    36.         PreparedStatement pre = null;   
    37.         Connection conn = null;   
    38.         conn = getConnection();   
    39.         ResultSet rs = null;   
    40.         ArrayList<Nodes> list = new ArrayList<Nodes>();   
    41.         try {   
    42.             pre = conn.prepareStatement(sql);   
    43.             rs =pre.executeQuery();   
    44.             while (rs.next()){   
    45.                 Nodes node = new Nodes();   
    46.                 node.setHrefAddress(rs.getString("hrefAddress"));   
    47.                 node.setNodeId(rs.getString("nodeId"));   
    48.                 node.setParentId(rs.getString("parentId"));   
    49.                 node.setNodeName(rs.getString("nodeName"));   
    50.                 list.add(node);   
    51.             }   
    52.             rs.close();   
    53.             pre.close();   
    54.             conn.close();   
    55.         } catch (SQLException e) {   
    56.             e.printStackTrace();   
    57.         }finally{   
    58.              pre = null;   
    59.              conn = null;   
    60.              rs = null;   
    61.         }   
    62.         return list;   
    63.     }   
    64.   
    65. }  

     3. 節(jié)點。JAVABEAN.類.

       

    Java代碼 復(fù)制代碼
    1. package com.dao;   
    2.   
    3. public class Nodes {   
    4.     private int id;   
    5.     private String nodeId;   
    6.     private String parentId;   
    7.     private String hrefAddress;   
    8.     private String nodeName;   
    9.   
    10.     public int getId() {   
    11.         return id;   
    12.     }   
    13.   
    14.     public void setId(int id) {   
    15.         this.id = id;   
    16.     }   
    17.   
    18.     public String getNodeId() {   
    19.         return nodeId;   
    20.     }   
    21.   
    22.     public void setNodeId(String nodeId) {   
    23.         this.nodeId = nodeId;   
    24.     }   
    25.   
    26.     public String getParentId() {   
    27.         return parentId;   
    28.     }   
    29.   
    30.     public void setParentId(String parentId) {   
    31.         this.parentId = parentId;   
    32.     }   
    33.   
    34.     public String getHrefAddress() {   
    35.         return hrefAddress;   
    36.     }   
    37.   
    38.     public void setHrefAddress(String hrefAddress) {   
    39.         this.hrefAddress = hrefAddress;   
    40.     }   
    41.   
    42.     public String getNodeName() {   
    43.         return nodeName;   
    44.     }   
    45.   
    46.     public void setNodeName(String nodeName) {   
    47.         this.nodeName = nodeName;   
    48.     }   
    49.   
    50. }  

     4.創(chuàng)建一個Serlvet 來生成xml文件.

              注意: response.setContentType("text/xml;charset=utf-8");

     

    Java代碼 復(fù)制代碼
    1. package com.handler;   
    2.   
    3. import java.io.IOException;   
    4. import java.io.PrintWriter;   
    5. import java.util.ArrayList;   
    6.   
    7. import javax.servlet.ServletException;   
    8. import javax.servlet.http.HttpServlet;   
    9. import javax.servlet.http.HttpServletRequest;   
    10. import javax.servlet.http.HttpServletResponse;   
    11.   
    12. import com.dao.DaoTest;   
    13. import com.dao.Nodes;   
    14. public class NodesPrint extends HttpServlet {   
    15.     private static final long serialVersionUID = 1L;   
    16.     public void doGet(HttpServletRequest request, HttpServletResponse response)   
    17.             throws ServletException, IOException {   
    18.                  doPost(request, response);   
    19.     }   
    20.     public void doPost(HttpServletRequest request, HttpServletResponse response)   
    21.             throws ServletException, IOException {   
    22.            request.setCharacterEncoding("utf-8");   
    23.            response.setContentType("text/xml;charset=utf-8");   
    24.            PrintWriter out = response.getWriter();   
    25.            DaoTest test = new DaoTest();   
    26.            ArrayList<Nodes> list=  test.getNodeInfo();   
    27.             if(list!=null&&list.size()>0){   
    28.                 out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");   
    29.                 out.println("<nodes>");   
    30.                 for(int i=0;i<list.size();i++){   
    31.                     Nodes node = list.get(i);   
    32.                     out.println("<node nodeId='"+node.getNodeId()+"' parentId='"+node.getParentId()+"' hrefAddress='"+node.getHrefAddress()+"'>"+node.getNodeName()+"</node>");   
    33.                 }   
    34.                 out.println("</nodes>");   
    35.             }   
    36.     }   
    37. }  

     5. 將dtree.js 和dtree.css,jquery.js, img文件夾.放在WebRoot下面.(工程的根目錄)

     6.  編寫我們的tree.jsp頁面.

          

    Java代碼 復(fù)制代碼
    1. <%@ page language="java" pageEncoding="utf-8"%>   
    2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">   
    3. <html>   
    4.  <head>   
    5.   <title>樹形結(jié)構(gòu)___ajax請求方式</title>   
    6.   <script type="text/javascript" src="dtree.js"></script>   
    7.   <script type="text/javascript" src="jquery.js"></script>   
    8.   <link rel="stylesheet" href="dtree.css" type="text/css"></link>   
    9.   <script type="text/javascript">   
    10.    tree = new dTree('tree');//創(chuàng)建一個對象.   
    11.    $.ajax({    
    12.     <A href="'NodesPrint'">url:'NodesPrint'</A>,    
    13.     type:'post'//數(shù)據(jù)發(fā)送方式    
    14.     dataType:'xml'//接受數(shù)據(jù)格式    
    15.     error:function(json){   
    16.              alert( "not lived!");   
    17.        },   
    18.     async: false ,//同步方式   
    19.     success: function(xml){   
    20.          $(xml).find("node").each(function(){    
    21.         var nodeId=$(this).attr("nodeId");     
    22.          var parentId=$(this).attr("parentId");     
    23.         var hrefAddress=$(this).attr("hrefAddress");     
    24.         var nodeName=$(this).text();    
    25.         tree.add(nodeId,parentId,nodeName,hrefAddress,"","","","",false);   
    26.                         });   
    27.            }   
    28.      });   
    29.         document.write(tree);   
    30.   </script>   
    31.  </head>   
    32.  <body>   
    33.  </body>   
    34. </html>  

        demo的結(jié)構(gòu)圖:

               

        

     附件說明.

      1.tree2.jsp.一個簡單jsp。靜態(tài)生成一個樹結(jié)構(gòu)

      2.dtree的用法文章及其例子.

      3.dtree+jquery動態(tài)生成樹的demo_____DtreeTest

                    

      

    posted on 2009-11-30 18:46 becket_zheng 閱讀(1395) 評論(0)  編輯  收藏 所屬分類: web前端開發(fā)
    主站蜘蛛池模板: 国产乱辈通伦影片在线播放亚洲 | 美女免费视频一区二区三区| 有色视频在线观看免费高清在线直播| 人人揉揉香蕉大免费不卡| 在人线av无码免费高潮喷水| 亚洲精品网站在线观看不卡无广告 | 亚洲色精品88色婷婷七月丁香| 亚洲网红精品大秀在线观看| 国产偷国产偷亚洲高清在线| 日韩内射激情视频在线播放免费| 国产成人无码免费视频97| 亚洲av永久无码精品国产精品| 亚洲AV无码一区二区三区性色| 一级毛片在线免费看| 亚洲?V乱码久久精品蜜桃 | 永久免费av无码入口国语片| 在线免费视频一区| 亚洲国产香蕉碰碰人人| 有色视频在线观看免费高清在线直播 | 亚洲18在线天美| 中文无码成人免费视频在线观看| 日韩一区二区免费视频| 一区二区三区亚洲| 一个人免费观看日本www视频| 99热在线精品免费全部my| 久久91亚洲人成电影网站| 在线亚洲v日韩v| 999在线视频精品免费播放观看| 国产性爱在线观看亚洲黄色一级片| 中文字幕亚洲码在线| 久久久久久久岛国免费播放| 亚洲M码 欧洲S码SSS222| 国内精品久久久久影院亚洲| 97公开免费视频| 国产V亚洲V天堂A无码| 无码免费又爽又高潮喷水的视频 | 黄瓜视频高清在线看免费下载| 亚洲国产国产综合一区首页| 一级毛片免费一级直接观看| 男女啪啪永久免费观看网站| 亚洲人成在久久综合网站|