dhtmlXTree 中文api

 dhtmlXTree是一個功能比較強大的樹控件,基本上能滿足大部分常規需求,比較好用。 
    當然,在使用過程中還是發現一點點問題。下面是我整理的一些裏面常用函數的說明(只有簡單的說明,如果要看詳細的說明,自己查看原函數去): 

構造函數 
dhtmlXTreeObject(htmlObject, width, height, rootId)//rootId 虛擬根節點,在界面上不會顯示,一般取值0 

replace IMG tag with background images - solve problem with IE image caching , not works for IE6 SP1 
enableIEImageFix(mode) 

析構函數 
destructor() 

實現繼承 
clone() 

節點構造函數 
dhtmlXTreeItemObject(itemId,itemText,parentObject,treeObject,actionHandler,mode)// mode - do not show images 

從xml字符串加載樹 
loadXMLString(xmlString,afterCall)//afterCall - function which will be called after xml loading 

從xml文件加載樹 
loadXML(file,afterCall) 

新建子節點,前三個參數爲必須的 
insertNewItem(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs) 
insertNewChild(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs) 

節點展開與收縮:[1-close 2-open] 
_HideShow(itemObject,mode) 

獲取節點狀態:0 - 沒有子節點, -1 - 節點合攏, 1 - 節點展開 
_getOpenState(node) 
getOpenState(itemId) 

獲取選中的節點Id 
getSelectedItemId() 

選中節點 
_selectItem(node,e) 

獲取節點的index 
getIndexById(itemId) 

設置鼠標右鍵點擊事件 
setOnRightClickHandler(func) 

設置鼠標點擊事件 
setOnClickHandler(func) 

設置節點狀態改變事件 
setOnSelectStateChange(func) 

設置允許動態加載xml文件(異步加載) 
setXMLAutoLoading(filePath) 

設置checkbox點擊事件 
setOnCheckHandler(func) 

設置節點展開/合攏事件 
setOnOpenHandler(func) 

設置節點開始展/合攏開事件 
setOnOpenStartHandler(func) 

設置節點展開/合攏結束事件 
setOnOpenEndHandler(func) 

設置節點雙擊事件 
setOnDblClickHandler(func) 

展開節點及下面所有子節點 
_xopenAll(node) 

//增加了不傳遞itemId的判斷(1494) 
openAllItems(itemId)//不傳遞itemId參數則合攏根節點 

根據id獲取節點 
_globalIdStorageFind(itemId) 

合攏節點及其下所有子節點 
_xcloseAll(node) 

//修改了原來邏輯的一個錯誤(1521) 
closeAllItems(itemId)//不傳遞itemId參數則合攏根節點 

爲節點增加用戶自定義的數據 
//修正一個錯誤(1548) 
setUserData(itemId,name,value) 

獲取用戶自定義的數據 
getUserData(itemId,name) 

獲取節點顏色 
getItemColor(itemId) 

設置節點顏色 
setItemColor(itemId,defaultColor,selectedColor) 

獲取節點名稱--(with HTML formatting, if any) 
getItemText(itemId) 

獲取父節點id 
getParentId(itemId) 

更改節點id 
changeItemId(itemId,newItemId) 

標記被剪切的節點 
doCut() 

粘貼被剪切的節點到新的父節點下 
doPaste(itemId) 

清空被剪切的節點 
clearCut() 

移動節點 
_moveNode(itemObject,targetObject) 

允許三種狀態的複選框(全選、不選、部分選中) 
enableThreeStateCheckboxes(mode)// 1 - on, 0 - off; 

設置鼠標懸浮事件 
setOnMouseInHandler(func) 

設置鼠標移走事件 
setOnMouseOutHandler(func) 

設置是否允許顯示樹圖片 
enableTreeImages=function(mode)//1 - on, 0 - off 

設置是否允許固定模式(對於顯示覆選框的界面美觀一些,但沒有水平滾動條) 
enableFixedMode(mode)// - 1 - on, 0 - off 

是否顯示覆選框 
enableCheckBoxes(mode, hidden)//mode 0/1 hidden 0/1 

設置節點圖片 
setStdImages(image1,image2,image3)//a0 - image for node without childrens a1 - image for closed node a2 - image for opened node 

設置是否顯示樹線 
enableTreeLines(mode) 

設置圖片 
setImageArrays(arrayName,image1,image2,image3,image4,image5)//image1 - line crossed image image2 - image with top line image3 - image with bottom line image4 - image without line image5 - single root image 

展開當前節點(一節) 
_openItem(node) 
openItem(itemId) 

合攏當前節點(一節) 
closeItem(itemId) 

獲取節點的層節數 
getLevel(itemId) 

設置節點是否允許被合攏 
setItemCloseable(itemId,flag)//flag 0/1 

對於展開節點返回子節點數量,對於未加載子節點的節點(異步加載)返回true 
hasChildren(itemId) 

獲取節點下的子節點數 
_getLeafCount(itemNode) 

設置節點名稱 
setItemText(itemId,newLabel,newTooltip) 

獲取節點tip 
getItemTooltip(itemId) 

刷新節點 
refreshItem(itemId) 

設置節點圖片 
setItemImage2(itemId, image1,image2,image3)//image1 - node without childrens image image2 - closed node image image3 - open node image 

設置節點圖片 
setItemImage(itemId,image1,image2)//image1 - node without childrens image or closed node image (if image2 specified)  image2 - open node image (optional) 

獲取節點下所有子節點id以逗號分割 
getSubItems(itemId) 
getAllSubItems(itemId) 

獲取節點的所有子節點 
_getAllScraggyItems(node) 

獲取選中節點的名稱--(with HTML formatting, if any) 
getSelectedItemText() 

設置節點的選中狀態 
setCheck(itemId,state)//state - checkbox state (0/1/unsure) 

設置節點及所有子節點的選中狀態 
setSubChecked(itemId,state) 

獲取節點的選中狀態 return: node state (0 - unchecked,1 - checked, 2 - third state) 
isItemChecked(itemId) 

刪除節點的所有子節點 
deleteChildItems(itemId) 

刪除節點 
deleteItem(itemId,selectParent) //selectParent - If true parent of deleted item get selection, else no selected items leaving in tree. 

在節點下創建一個節點,前三個參數是必須的 
insertNewNext(itemId,newItemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs) 

根據index獲取節點下子節點的id 
getChildItemIdByIndex(itemId,index)//itemId 節點id 

設置拖動事件 
setDragHandler(func) 

設置是否允許拖拽 
//mode - enabled/disabled [ can be true/false/temporary_disabled - last value mean that tree can be D-n-D can be switched to true later ] 
//rmode - enabled/disabled drag and drop on super root 
enableDragAndDrop(mode,rmode) 

設置是否允許IE緩存 
preventIECashing=function(mode)//mode - enable/disable random seed ( disabled by default ) 

設置是否允許選中節點名稱高亮顯示 
enableHighlighting(mode)//mode - 1 - on, 0 - off 

是否允許圖片可點擊和拖拽(clickable and dragable) 
enableActiveImages(mode)// mode - 1 - on, 0 - off 

設置節點獲得焦點 
focusItem(itemId) 

獲取所有無子節點的節點id 
getAllChildless() 
getAllLeafs() 

獲取所有有子節點的節點id 
getAllItemsWithKids() 

獲取所有被選中節點id,不包括第三中狀態的節點(部分選中的節點) 
getAllChecked() 

獲取所有被選中節點id,包括第三中狀態的節點(部分選中的節點) 
getAllCheckedBranches() 

獲取節點下所有未選中的節點id,不傳遞itemId表示從根節點開始查找 
getAllUnchecked(itemId) 

獲取所有部分選中的節點id(因部分子節點選中而被選中的節點) 
getAllPartiallyChecked() 

設置節點樣式 
setItemStyle(itemId,style_string) 

設置是否允許拖拽圖片 
enableImageDrag(mode) 
set function called when tree item draged over another item 
setOnDragIn(func) 

設置拖拽是是否允許自動滾動 
enableDragAndDropScrolling(mode) 


補充說明:加載樹時,必須確保所有節點的id不重複,否則控件會爲重複id自動生成一個隨機數(原id+"_"+當前日期)。 
增加了一個dhtmlXTreeExtend.js對原類進行擴展,增加了getAllCheckedLeaf(),getAllUcCheckedLeaf()兩個函數 
修改了1個bug: 
1 增加沒有選中節點時執行展開/收縮選定節點時報沒有parentId的bug 
dhtmlXTreeObject.prototype.setSubChecked=function(itemId,state){ 
   if(itemId) 

  var sNode=this._globalIdStorageFind(itemId); 
  this._setSubChecked(state,sNode); 
  this._correctCheckStates(sNode.parentObject); 




1 增加了未傳遞itemId參數時默認從根節點展開 
dhtmlXTreeObject.prototype.openAllItems=function(itemId) 
   { 
      if (itemId==window.undefined) itemId=this.rootId; 
      var temp=this._globalIdStorageFind(itemId); 
      if (!temp) return 0; 
      this._xopenAll(temp); 
   };

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章