道非道 非常道

          勤思、謹言、慎行、厚積、薄發

          統計

          web

          天圓

          經濟 政治 軍事

          鍵康

          xtree的基本應用---入門級(轉)

          xtree的基本應用---入門級(轉)

          由 于公司要求做一棵關于公司員工選擇的JS控件樹,以前我們一直使用的都是dTree,由于沒有采用AJAX,服務器在北京的話,使用起來超慢,于是上面要 求修改此樹,沒想到任務落到了我的頭上,沒辦法,硬著頭皮做吧。正在我想有什么辦法的時候,同事推介用用Xtree,于是我開始去學習這個東東,現在只能 是基本應用,也想共享一下自己的學習必得。

          1、下載:http://webfx.eae.net/dhtml/xtree2b/,里面包括了API,和DEMO,都是E文的,不過很容易看懂的。也可以直接在此網站點擊相關DEMO看效果,很不錯的。

          2、就是使用了:可以直接打開下載解壓后的文件中的相關DEMO看看效果。不過要注意,因為Xtree使用了AJAX,也使用到了XML,不知道什 么原因,在 IE里本地打開動態加載的樹時會報JS錯誤,也不能正常打開樹(通過服務器器不會出錯),在FireFox中就能本地正常打開。

          3、建立自己的樹:Xtree有兩種樹,一種是靜態樹,一種是動態樹。也可以將這兩種樹綜合在一起使用。

          大家要去參考一下網上的“分析xloadtree, 用ajax實現的動態目錄樹 ”這篇文章,寫得不錯。

          (1)、靜態樹:
          <html>
          <head>
          <title>測試樹</title>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
          <link type="text/css" rel="stylesheet" href="css/xtree2.css">
          <script type="text/javascript" src="js/xtree2.js"></script>
          </head>
          <body>
          <script type="text/javascript">
          var tree = new WebFXTree("測試樹");//構造一棵樹
          for (var i = 0; i < 50; i++){
          tree.add( new WebFXTreeItem("子結點 " + i) );//加入結點
          }
          tree.write();//輸入樹
          </script>
          <body>
          </html>

          (2)、動態樹
          var tree = new WebFXLoadTree("Hello World", "tree.xml");//打開根結點時,即從tree.xml文件中得到子樹,也可是從服務器返回的XML流
          tree.write();

          (3)、兩種樹綜合(從XML文件中讀到子樹結點):
          var tree = new WebFXTree("Root");
          tree.add(new WebFXTreeItem("Tree Item 1"));

          //從tree.xml文件中動態加載子樹,此處的XML文件可以是從服務器方返回來的XML流,
          //如:tree.add(new WebFXLoadTreeItem("從服務器返回", "tree.jsp"));
          tree.add(new WebFXLoadTreeItem("Tree Item 2", "tree.xml"));

          tree.add(new WebFXTreeItem("Tree Item 4"));
          tree.write();

          tree.jsp文件如下:
          <%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8" %>
          <%
                  response.setContentType("text/xml"); //這句必須要,只有設置了才是能XML流形式輸出到客戶端
                  out.println("<tree>");
                  out.println("<tree text=""Load tree.xml"" src=""         out.println("</tree>");
          %>

          4、tree.xml說明:
          在動態生成一棵樹時就會用到tree.xml文件,它是一個標準的XML文件。
          它由一個外層的tree無屬性元素,再內部包括多個子tree元素組成。

          使用要注意的是:
          如果要使用到中文或漢字的話,最好在文件開始處加入<?xml version="1.0" encoding="gb2312"?>否則會報亂碼的JS錯誤。
          另外就是XML文件中的特殊字符處理,這是使用這個很傷腦殼的地方,大家可以查考xtree所附帶的TREE.XML文件,講得很清楚。
          <?xml version="1.0" encoding="gb2312"?>
          <tree>
          <tree text="Load &quot;tree1.xml&quot; (Should raise error)" src="tree1.xml" toolTip="Tool Tip"/>
          <tree text="Load &quot;tree2.xml&quot; (Should raise error)" src="tree2.xml"
              onerror="this.setText('Load &quot;tree2.xml&quot; (Raised error)')"/>
          <tree text="Loaded Item 1" action="
          <tree text="Loaded Item 2" expanded="true">
             <tree text="Loaded Item 2.1" action="javascript:alert( tree.getSelected().getId() )" id="custom-id"/>
          </tree>
          <tree text="Loaded Item 3 (click to set src)" onaction="this.setSrc(this.getSrc() ? null : 'tree3.xml')"
              onload="this.setText('Loaded Item 3 (changed onload)')"/>
          <tree text="Load treeLARGE.xml" src="treeLARGE.xml" toolTip="XML file with 500 items"/>
          <tree text="Deep nesting" src="nest.xml.pl" />
          </tree>

          其實xtree還提供了兩個JS文件:xtree2.js,xloadtree2.js,里面包括了xtree的工作原理和相關方法及屬性,
          沒事大家可以去看看,對操作樹很有用處的,如:選擇/得到指定結點的信息,得到/修改結點的圖標等等。

          我在使用時由于TOMCAT設置成不允許客戶端緩存,感覺樹大了就有點點慢,所以建議大家使用時允許客戶端緩存,會快很多。

          posted on 2009-07-01 16:10 星期五 閱讀(975) 評論(0)  編輯  收藏 所屬分類: WEB FX

          主站蜘蛛池模板: 承德市| 双峰县| 舞阳县| 青海省| 宜宾市| 逊克县| 福海县| 定南县| 曲松县| 芮城县| 汉中市| 正镶白旗| 三原县| 化德县| 清流县| 金门县| 宣恩县| 徐闻县| 岳阳县| 潢川县| 灌南县| 宝坻区| 澄江县| 永城市| 顺平县| 南木林县| 昆明市| 诸暨市| 丹凤县| 遂川县| 中西区| 鄄城县| 大名县| 恩平市| 延边| 信丰县| 长顺县| 芷江| 宣武区| 静安区| 建瓯市|