dhtmlTree簡單一實例以及基本參數設定

來源:互聯網
上載者:User

標籤:des   style   blog   http   io   ar   color   os   sp   

demo執行個體參考: 

<link rel="STYLESHEET" type="text/css" href="css/dhtmlXTree.css"><script src="js/dhtmlXCommon.js"></script><script src="js/dhtmlXTree.js"></script><td valign="top">  <div id="treeboxbox_tree" style="width:250; height:218;background-color:#f5f5f5;border :1px solid Silver;; overflow:auto;"></div></td><td valign="top">  <div id="treeboxbox_tree2" style="width:250; height:218;background-color:#f5f5f5;border :1px solid Silver;; overflow:auto;"></div></td><script>tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0);tree.setImagePath("imgs/");tree.enableCheckBoxes(0);tree.setOnClickHandler(tonclick);tree.loadXML("tree3.xml");tree2=new dhtmlXTreeObject("treeboxbox_tree2","100%","100%",0);tree2.setImagePath("imgs/");tree2.enableCheckBoxes(1);tree2.enableThreeStateCheckboxes(true);tree2.loadXML("tree3.xml");</script>

基本屬性參數 

一、外觀1.設定加減表徵圖展示狀態    tree.showItemSign(tree.getSelectedItemId(), false);(false 隱藏  true 顯示)2.設定樹的方向    tree2.enableRTL(false);--預設false3.設定節點高度    enableMultiLineItems("300px");4.設定節點樣式    setItemStyle(tree.getSelectedItemId(),document.getElementById(‘tuds‘).value)    <textarea id="tuds" rows="10" style="width:300px;">font-weight:bold;    text-decoration:underline;5.設定大小符號資訊    tree.enableTreeImages("-Icons");//設定是否顯示表徵圖    tree.enableTreeLines("-Lines");//設定是否顯示連接線    tree.enableTextSigns("Cross Signs");//設定是否顯示交叉線(即橫線)6.設定選中的節點的topoffset    setItemTopOffset(tree.getSelectedItemId(),"60px")7.設定皮膚    tree.setSkin(‘dhx_skyblue‘);    tree.setImagePath("http://www.cnblogs.com/codebase/imgs/");    tree.setImagePath("http://www.cnblogs.com/codebase/imgs/csh_scbrblue/");    tree.setImagePath("http://www.cnblogs.com/codebase/imgs/csh_yellowbooks/");8.設定節點字型顏色    setItemColor(tree.getSelectedItemId(), color1, color2);color1=color29.設定表徵圖    tree.setItemImage2(tree.getSelectedItemId(),‘leaf3.gif‘,‘leaf3.gif‘,‘leaf3.gif‘)二、複選框/單選    tree.enableCheckBoxes(1);//設定複選框    tree.enableThreeStateCheckboxes(true);//允許半選狀態1.擷取選中的節點    tree.getAllChecked()--不包括父節點2.擷取未選中的節點    tree.getAllUnchecked()3.擷取選中的節點,包括半選狀態的    tree.getAllCheckedBranches()4.擷取部分選中的節點對象(半選狀態的節點)    tree.getAllPartiallyChecked()1+2=3 5.單選框    tree.enableCheckBoxes(1);    enableRadioButtons(‘db‘,true)--db是節點ID true則設定成單選框          setCheck(tree.getSelectedItemId(),true)--選中    setCheck(tree.getSelectedItemId(),false)--不選    showItemCheckbox(tree.getSelectedItemId(),false)--設定該節點為複選框    disableCheckbox(tree.getSelectedItemId(),true)--去除複選框    disableCheckbox(tree.getSelectedItemId(),false)--複選框失效    disableCheckbox(tree.getSelectedItemId(),true)--恢複    setSubChecked(tree.getSelectedItemId(),true)--設定節點下面的子節點全部選中    setSubChecked(tree.getSelectedItemId(),false)--設定節點下面的子節點全部不選中三、事件        右擊事件        menu = new dhtmlXMenuObject();        menu.setIconsPath("../common/images/");        menu.renderAsContextMenu();        menu.attachEvent("onClick", onButtonClick);        menu.loadXML("../common/_context.xml");        menu.renderAsContextMenu();        menu.attachEvent("onClick", onButtonClick);        tree.enableContextMenu(menu);        拖拽事件        tree.enableDragAndDrop(true);                觸發單擊事件前的事件        tree.attachEvent("onBeforeContextMenu", function(itemId) {            if (tree.hasChildren(itemId) > 0) {            menu.hideItem(‘outher‘);            } else {            menu.showItem(‘outher‘);            }            return true;        });載入前/後事件    tree.setOnLoadingStart(func_a);    tree.setOnLoadingEnd(func_b);    右擊事件    tree.setOnRightClickHandler(_rclick);雙擊事件    setOnDblClickHandler    tree.setOnOpenHandler(tonopen);    tree.attachEvent("onOpenEnd", function(nodeId, event) {            });

 基本方法總結:

建構函式dhtmlXTreeObject(htmlObject, width, height, rootId)//rootId 虛擬根節點,在介面上不會顯示,一般取值0replace IMG tag with background images - solve problem with IE image caching , not works for IE6 SP1enableIEImageFix(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)擷取選中的節點IdgetSelectedItemId()選中節點_selectItem(node,e)擷取節點的indexgetIndexById(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)擷取父節點idgetParentId(itemId)更改節點idchangeItemId(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對於展開節點返回子節點數量,對於未載入子節點的節點(非同步載入)返回truehasChildren(itemId)擷取節點下的子節點數_getLeafCount(itemNode)設定節點名稱setItemText(itemId,newLabel,newTooltip)擷取節點tipgetItemTooltip(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擷取節點下子節點的idgetChildItemIdByIndex(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 rootenableDragAndDrop(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)擷取所有無子節點的節點idgetAllChildless()getAllLeafs()擷取所有有子節點的節點idgetAllItemsWithKids()擷取所有被選中節點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 itemsetOnDragIn(func)設定拖拽是是否允許自動滾動enableDragAndDropScrolling(mode)補充說明:載入樹時,必須確保所有節點的id不重複,否則控制項會為重複id自動產生一個隨機數(原id+"_"+當前日期)。增加了一個dhtmlXTreeExtend.js對原類進行擴充,增加了getAllCheckedLeaf(),getAllUcCheckedLeaf()兩個函數修改了1個bug:增加沒有選中節點時執行展開/收縮選定節點時報沒有parentId的bugdhtmlXTreeObject.prototype.setSubChecked=function(itemId,state){if(itemId){var sNode=this._globalIdStorageFind(itemId);this._setSubChecked(state,sNode);this._correctCheckStates(sNode.parentObject);}}增加了未傳遞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);};

  

 

dhtmlTree簡單一實例以及基本參數設定

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.