js 動態樹形控制項 xtree

來源:互聯網
上載者:User

xtree.js是web開發中運用較多的一個樹型控制項。其入門簡單,功能強大,很多人在它的基礎上開發出了自己的

樹型控制項。目前xtree好像是2.0版本,與1.0版本比較該版本的改動還是很大的。

(請發郵件到
allsaver@126.com 獲得翻強軟體。)

一般來講xtree有兩種使用模式

,顯示構造樹和運用xml資料來源。

   第一種方式指定資料來源和構造樹的過程是同時的。這也是大家經常採用的方式,過程如下:

   var tree = new WebFXTree('-test-');///樹的根節點顯示文字為:test
    tree.setBehavior('classic');/////設定樹的現用模式

   var child1 = new WebFXTreeItem('child1','',null,null,null,'Y',null,'value_of_this_node');/////

建立一個節點項

  xtree.js源碼中節點項的建構函式如下:

function WebFXTreeItem(sText, sAction, eParent, sIcon,

sOpenIcon,sRadio,sCheckBox,sValue,sChecked)/////其中sText指定節點顯示的值;sAction指定節點點擊時所

觸發的js函數,如:sAction="javascript:alert('0')"或sAction="javascript:function_A('param')"(你可以

自定以function_A函數);eParent指定該節點的父節點,通常為空白,實際中經常用tree.add(child1)的方式來指

定父子關係;sIcon和sOpenIcon用以指定節點關閉和展開時的表徵圖;sRadio,sCheckBox分別指定節點前是否有

radio按鈕或是一個複選框;sValue指定該節點所代表的值,如當radio鈕選中,樹形控制項返回的值,這個功能經

常用在標註上;sChecked指定該節點的選中狀態。

該方式下,我們邊構建樹邊指定資料來源,使用簡單,但效率很低。特別是資料來源很多時,樹的顯示很慢。

  第二種方式運功用xml資料來源,動態載入樹,顯示的效率較高。實際中xml資料來源的片段如下:

 <?xml version="1.0"?>

<!DOCTYPE tree SYSTEM "tree.dtd">
<tree>/////根節點對應WebFXLoadTree中指定的樹狀結構根節點,該根有三個直接子結點
 <tree text="Loaded Item 1" action="href://webfx.eae.net" />
 <tree text="Loaded Item 2">
  <tree text="Loaded Item 2.1" action="javascript:alert(2.1)" />
 </tree>
 <tree text="Load &quot;tree1.xml&quot;" src="tree1.xml" />
</tree>

xtree的xml資料來源需遵循的dtd如下:<!ELEMENT tree (tree*)>
<!ATTLIST tree
   text  CDATA #REQUIRED  ////節點顯示名稱,必選
   src   CDATA #IMPLIED  /////節點對應的資料來源,可遞迴構造
   action  CDATA #IMPLIED/////節點點擊時所觸發的js動作
   icon  CDATA #IMPLIED////節點表徵圖
   openIcon CDATA #IMPLIED////展開時對應的表徵圖
   target  CDATA #IMPLIED>

頁面中使用該樹的代碼如下:var tree = new WebFXLoadTree("root", “<%=filename%>.xml");
                                                        tree.write();

此種方式使用xtree效率較高,具有動態載入節點的功能,節點之間的父子關係通過tree的嵌套來表示。但好像

不能構造諸如含有單選鈕或是複選框的節點。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.