天天看點

Ext.Tree 各種屬性

1、Ext.tree.TreePanel

主要配置項:

root:樹的根節點。

rootVisible:是否顯示根節點,預設為true。

useArrows:是否在樹中使用Vista樣式箭頭,預設為false。

lines:是否顯示樹線,預設為true。

loader:樹節點的加載器,預設為Ext.tree.TreeLoader。

selModel:樹的選擇模式,預設為Ext.tree.DefaultSelectionModel。

pathSeparator:樹節點路徑的分隔符,預設為“/”。

singleExpand:是否一次隻展開樹中的一個節點,預設為true。

requestMethod:請求方法,可選值有POST、GET。

containerScroll:是否将樹形面闆注冊到滾動管理器ScrollManager中。

autoScroll:當内容超過預設的高度時自動出現滾動條。

draggable:是否允許拖曳。

enableDD:設定樹的節點是否可以拖動。

主要方法:

collapseAll():收縮所有樹節點

expandAll():展開所有樹節點

getRootNode():擷取根節點

getNodeById(String id):擷取指定id的節點

expand( [Boolean deep], [Boolean anim], [Function callback], [Object scope] )

expandPath( String path, [String attr], [Function callback] )

getChecked( [String attribute], [TreeNode startNode] )

selectPath( String path, [String attr], [Function callback] )

getSelectionModel():

2、Ext.data.Node

主要配置項:

id:節點id

leaf:目前節點是否為葉子節點

主要屬性:

id:節點id

attributes:節點屬性的集合

parentNode:目前節點的父節點

childNodes:目前節點所有子節點組成的數組

firstChild:目前節點的第一個直接子節點,如果沒有則為null值

lastChild:目前節點的最後一個直接子節點,如果沒有則為null值

nextSibling:目前節點的下一個兄弟節點,如果沒有則為null值

previousSibling:目前節點的前一個兄弟節點,如果沒有則為null值

主要方法:

appendChild( Node/Array node ):追加新的子節點

bubble( Function fn, [Object scope], [Array args] ):從目前節點開始向上疊代調用指定函數,如果指定函數傳回false則将終止疊代。

args:傳入函數中的參數,預設為目前節點

cascade( Function fn, [Object scope], [Array args] ):從目前節點開始向下疊代調用指定函數,如果指定函數傳回false則将終止疊代。

contains( Node node ):目前節點是否包含指定子節點。

eachChild( Function fn, [Object scope], [Array args] ):疊代目前節點的所有子節點調用指定函數,如果指定函數傳回false則将終止疊代。

findChild( String attribute, Mixed value ):查找具有指定屬性的第一個子節點。

findChildBy( Function fn, [Object scope] ):根據自定義函數查找第一個符合要求的子節點,如果自定義函數傳回true則說明比對成功。

getDepth():取得目前節點的深度,根節點的深度為0

getOwnerTree():取得目前節點所在樹。

getPath( [String attr] ):取得目前節點對應的路徑,這個路徑在程式中可用于展開或者選擇節點。

attr:用于查找路徑的屬性,預設為節點id

hasChildNodes():是否有子節點

indexOf( Node node ):取得指定子節點的索引值,未找到傳回-1。

insertBefore( Node node, Node refNode ):在目前節點的指定子節點之前插入一個新的子節點。

node:要插入的新節點

isAncestor( Node node ):判斷指定節點是否為目前節點的父節點(可以是任何一級中的父節點)。

isFirst():是否為父節點的第一個子節點。

isLast():是否為父節點的最後一個子節點。

isLeaf():是否為葉子節點。

item( Number index ):取得指定索引的子節點。

remove():從父節點中删除目前節點。

removeChild( Node node ):删除目前節點的指定子節點。

replaceChild( Node newChild, Node oldChild ):用新的子節點替換目前節點的指定子節點。

sort( Function fn, [Object scope] ):用指定的排序函數為目前節點的子節點進行排序。

3、Ext.tree.TreeNode

主要配置項:

text:節點上的文本資訊

qtip:節點上的提示資訊

icon:節點圖示對應的路徑

iconCls:應用到節點圖示上的樣式

checked:目前節點的選擇狀态

true:在節點前顯示一個選中狀态的複選框

false:在節點前顯示一個未選中狀态的複選框

不指定該值:不顯示任何複選框

href:節點的連接配接屬性,預設為#

hrefTarget:顯示節點連接配接的目标架構

editable:是否允許編輯,預設為true

expanded:是否展開節點,預設為false

disabled:是否禁用節點,預設為false

singleClickExpand:是否通過單擊方式展開節點

allowChildren:是否允許目前節點具有子節點,預設為true

expandable:當不含子節點時,是否總顯示一個加減圖示,預設為false

uiProvider:節點的UI類,預設為Ext.tree.TreeNodeUI

主要屬性:

text:節點上的文本資訊

disabled:目前節點是否被禁用

主要方法:

collapse( [Boolean deep], [Boolean anim], [Function callback], [Object scope] ):收縮目前節點

deep:是否級聯收縮全部子節點

collapseChildNodes( [Boolean deep] ):收縮所有子節點

disable():禁用目前節點

enable():啟用目前節點

ensureVisible( [Function callback], [Object scope] ):確定所有父節點都是展開的

expand( [Boolean deep], [Boolean anim], [Function callback], [Object scope] ):展開目前節點

expandChildNodes( [Boolean deep] ):展開所有子節點

isExpanded():目前節點是否展開

isSelected():目前節點是否被選中

select():選擇目前節點

setText( String text ):設定目前的文本

toggle():切換目前節點的展開和收縮狀态

unselect():取消對目前節點的選擇

getUI():取得節點的UI對象

4、Ext.tree.AsyncTreeNode

主要配置項:

loader:目前節點的樹加載器,預設使用樹中配置的樹加載器

主要方法:

isLoaded():目前節點是否已經加載資料

reload( Function callback, [Object scope] ):重新加載節點資料,并調用回調函數

5、Ext.tree.TreeNodeUI

主要方法:

getAnchor():從節點的UI中擷取焦點的<a>元素

getIconEl():擷取圖示的<img>元素

getTextEl():擷取文本節點

addClass( String/Array className ):

removeClass( String/Array className ):

hide():

show():

isChecked():取得節點的選擇狀态,如果目前節點沒有複選框則函數傳回false

toggleCheck( Boolean (optional) ):設定節點複選框的選擇狀态

6、Ext.tree.TreeNodeUI作為樹形節點的視圖,我們可以通過node.ui的方式獲得某個Ext.tree.TreeNode執行個體對應的Ext.tree.TreeNodeUI。

主要函數:

addClass( )給節點增加樣式;

removeClass()給節點删除樣式;

getAnchor()獲得頁面上與樹形對應的<a>标簽;

getIconEl()獲得頁面上與樹形對應的<img>标簽;

getTextEl()獲得頁面上與樹形對應的包含文字的<span>标簽部分;

hide()和show()函數可以控制樹形節點是否隐藏;

isChecked()函數可以判斷節點中Checkbox狀态;

toggleCheck()函數可以修改節點中的Checkbox狀态;

7、Ext.tree.DefaultSelectionModel

是TreePanel的預設選擇模式,該模式一次隻能選擇樹中的一個節點。

主要方法:

clearSelections():清除對樹中所有節點的選擇

getSelectedNode():取得目前被選中的節點

isSelected( TreeNode node ):節點是否被選中

select( TreeNode node ):選中指定節點

unselect( TreeNode node ):取消指定節點的選中狀态

selectNext():選擇目前被選節點的下一個節點

selectPrevious():選擇目前被選節點的上一個節點

8、Ext.tree.MultiSelectionModel

是TreePanel的多選擇模式,該模式一次可以選擇樹中的多個節點。

主要方法:

clearSelections():清除所有節點的選中狀态

getSelectedNodes():取得被選節點組成的數組

isSelected( TreeNode node ):節點是否被選中

select( TreeNode node, [EventObject e], Boolean keepExisting ):選中指定節點

unselect( TreeNode node ):取消指定節點的選中狀态

9、Ext.tree.TreeLoader

提供了對子節點的延時加載功能,請求指定的URL位址,傳回子節點資料,傳回的資料格式如下:

[

{

id: 1,

text: "node1",

leaf: true,

check: false

},

{

id: 2,

text: "node2",

children: [

{

id: 3,

text: "node3",

leaf: true

}

]

}

]

樹節點展開時,目前節點的id會作為請求參數被發送到伺服器,在伺服器可以通過node參數名進行擷取。

主要配置項:

dataUrl:擷取子節點的URL位址。

baseAttrs:子節點的基本屬性對象,該對象中的屬性将被添加到樹加載器建立的所有子節點上。優先伺服器傳回的同名屬性值。

baseParams:基本的請求參數,這些參數會被附加到每一個節點的請求中

clearOnLoad:在加載前是否移除已存在的子節點,預設為true。

preloadChildren:在第一次加載子節點後是否遞歸加載所有子節點。

requestMethod:請求方法,可選值有POST、GET。

uiProviders:加載器建立子節點的UI實作類。

url:與dataUrl作用相同。

主要方法:

load( Ext.tree.TreeNode node, Function callback, (Object) scope ):從指定的URL加載樹節點。

node:需要加載子節點的樹節點。

10、Ext.tree.TreeEditor

主要配置項:

alignment:對齊方式。

editDelay:兩次點選節點觸發編輯操作的延時時間,預設為350毫秒。

hideEl:在顯示編輯器元件時是否隐藏綁定元素。

maxWidth:編輯器的最大寬度,預設為250。

11、Ext.tree.TreeSorter

主要配置項:

property:用于排序的節點屬性名,預設為text。

dir:排序方向,可選值有asc、desc,預設為asc。

caseSensitive:是否區分大小寫,預設為false。

folderSort:葉節點是否排在非葉節點之下,預設為false。

leafAttr:葉子節點在folder排序時的值,預設為leaf。

sortType:一個自定義函數用于在排序前轉換節點值。

12、若要設定選中節點的屬性node.setText(‘new node’),其他屬性的設定可以模仿這種方式。

13、tree.setRootNode( )設定根節點;root.appendChild(node1)表示把node1插到根上面,也就是root添加子節點node1;root.expand(true,true)其中第一個參數表示是否遞歸展開子節點,如果為false,就隻展開第一級節點,下面的子節點仍然是折疊狀态。第二個參數表示是否要動畫效果。

注意:若要出現樹形效果,必須要給定一個初始高度,或者定義autoHeight為true。

14、若要從本地讀取json資料,需要寫個文本檔案為樹形提供json資料。需要在TreePanel中設定屬性loader:new Ext.tree.TreeLoader(dataUrl:’03-03.txt’},還得将根節點的TreeNode改成AsyncTreeNode,因為TreeNode不支援Ajax,無法生成子節點。若要實作讀取本地js中的json資料,也需要設定loader,此處的url不需要設定,同樣TreeNode改成AsyncTreeNode。

注意:在txt文檔裡應定義節點的屬性leaf:true,不然節點會無限循環下去。

15、若要實作從背景讀取資料,需要給根節點設定個id,然後dataUrl将jsp或php檔案鍊上,注意節點的id不能重複。這裡不能再使用root.expand(true)進行遞歸展開了,不然會導緻樹形節點不斷向背景發送請求,直到所有的節點都展開為止,無法實作異步的效果。

16、icon比iconCls的優先級高,iconCls隻能設定背景圖檔,icon設定的是img中的src部分。

17、若是将tree渲染到某個panel裡,不能再用root.expand(true,true)實作根節點展開功能,需要在root中加一個屬性expanded:true。

18、TreeNode裡的view部分稱為UI,包括縮進用的空白,節點之間的連接配接線,節點展開和折疊的圖示以及顯示的标題。

19、在彈出框屬性中設定animEl:node.ui.textNode實作動态效果,是從節點飛出來的。

20、可以設定節點href屬性,以及在新頁面打開hrefTarget:’_blank’

21、treepanel事件有click,beforeload,contextmenu右鍵菜單事件,nodedrop,beforestartedit,complete等。

22、從一棵樹拖到另一棵樹,需要分别設定enableDrag和enableDrop。

23、clear( )表示清空過濾條件,這會讓樹形顯示出所有節點;clearBlank:true表示如果查詢的字元串是空字元串,就執行clear();autoClear:true表示每次過濾之前先執行clear(),否則會在上次過濾的結果上進行查詢;remove表示會删除不符合過濾條件的節點,這樣就不能使用clear()恢複為過濾之前的狀态了。

原文:http://www.cnblogs.com/pinnasky/archive/2012/03/02/2377506.html