posts - 66, comments - 12, trackbacks - 0, articles - 0

          導(dǎo)航

          <2010年8月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(2)

          隨筆分類(65)

          隨筆檔案(66)

          搜索

          •  

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          dhtmlxtree相關(guān)資料 (轉(zhuǎn)帖)

          Posted on 2010-08-17 17:17 cyantide 閱讀(1516) 評論(0)  編輯  收藏 所屬分類: html、script
          經(jīng)常有需要顯示分層的數(shù)據(jù)結(jié)構(gòu),使用dhtmlxTree (DHTML 延展的樹狀結(jié)構(gòu))可以在瀏覽器輕易解決這類需求。它是應(yīng)用Java語言樹狀結(jié)構(gòu)菜單組件,予許在商業(yè)應(yīng)用程序或網(wǎng)站頁面,建立導(dǎo)引的使用者接口(樹狀結(jié)構(gòu) 菜單),這種應(yīng)用架構(gòu),可以在在線進行信息的管理與整合,使用者能容易地找到他們需要的信息。

          當(dāng)然,在使用過程中還是發(fā)現(xiàn)一點點問題。下面是我整理的一些里面常用函數(shù)的說明(只有簡單的說明,如果要看詳細(xì)的說明,自己查看原函數(shù)去):

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

          replace IMG tag with background images - solve problem with IE image caching , not works for IE6 SP1
          enableIEImageFix(mode)
          析構(gòu)函數(shù)
          destructor()
          實現(xiàn)繼承
          clone()
          節(jié)點構(gòu)造函數(shù)
          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)
          新建子節(jié)點,前三個參數(shù)為必須的
          insertNewItem(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs)
          insertNewChild(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs)

          節(jié)點展開與收縮:[1-close 2-open]
          _HideShow(itemObject,mode)
          獲取節(jié)點狀態(tài):0 - 沒有子節(jié)點, -1 - 節(jié)點合攏, 1 - 節(jié)點展開
          _getOpenState(node)
          getOpenState(itemId)
          獲取選中的節(jié)點Id
          getSelectedItemId()
          選中節(jié)點
          _selectItem(node,e)
          獲取節(jié)點的index
          getIndexById(itemId)
          設(shè)置鼠標(biāo)右鍵點擊事件
          setOnRightClickHandler(func)
          設(shè)置鼠標(biāo)點擊事件
          setOnClickHandler(func)
          設(shè)置節(jié)點狀態(tài)改變事件
          setOnSelectStateChange(func)
          設(shè)置允許動態(tài)加載xml文件(異步加載)
          setXMLAutoLoading(filePath)
          設(shè)置checkbox點擊事件
          setOnCheckHandler(func)
          設(shè)置節(jié)點展開/合攏事件
          setOnOpenHandler(func)
          設(shè)置節(jié)點開始展/合攏開事件
          setOnOpenStartHandler(func)
          設(shè)置節(jié)點展開/合攏結(jié)束事件
          setOnOpenEndHandler(func)
          設(shè)置節(jié)點雙擊事件
          setOnDblClickHandler(func)
          展開節(jié)點及下面所有子節(jié)點
          _xopenAll(node)
          //增加了不傳遞itemId的判斷(1494)
          openAllItems(itemId)//不傳遞itemId參數(shù)則合攏根節(jié)點
          根據(jù)id獲取節(jié)點
          _globalIdStorageFind(itemId)
          合攏節(jié)點及其下所有子節(jié)點
          _xcloseAll(node)
          //修改了原來邏輯的一個錯誤(1521)
          closeAllItems(itemId)//不傳遞itemId參數(shù)則合攏根節(jié)點
          為節(jié)點增加用戶自定義的數(shù)據(jù)
          //修正一個錯誤(1548)
          setUserData(itemId,name,value)
          獲取用戶自定義的數(shù)據(jù)
          getUserData(itemId,name)
          獲取節(jié)點顏色
          getItemColor(itemId)
          設(shè)置節(jié)點顏色
          setItemColor(itemId,defaultColor,selectedColor)
          獲取節(jié)點名稱--(with HTML formatting, if any)
          getItemText(itemId)
          獲取父節(jié)點id
          getParentId(itemId)
          更改節(jié)點id
          changeItemId(itemId,newItemId)
          標(biāo)記被剪切的節(jié)點
          doCut()
          粘貼被剪切的節(jié)點到新的父節(jié)點下
          doPaste(itemId)
          清空被剪切的節(jié)點
          clearCut()
          移動節(jié)點
          _moveNode(itemObject,targetObject)
          允許三種狀態(tài)的復(fù)選框(全選、不選、部分選中)
          enableThreeStateCheckboxes(mode)// 1 - on, 0 - off;
          設(shè)置鼠標(biāo)懸浮事件
          setOnMouseInHandler(func)
          設(shè)置鼠標(biāo)移走事件
          setOnMouseOutHandler(func)
          設(shè)置是否允許顯示樹圖片
          enableTreeImages=function(mode)//1 - on, 0 - off
          設(shè)置是否允許固定模式(對于顯示復(fù)選框的界面美觀一些,但沒有水平滾動條)
          enableFixedMode(mode)// - 1 - on, 0 - off
          是否顯示復(fù)選框
          enableCheckBoxes(mode, hidden)//mode 0/1 hidden 0/1
          設(shè)置節(jié)點圖片
          setStdImages(image1,image2,image3)//a0 - image for node without childrens a1 - image for closed node a2 - image for opened node
          設(shè)置是否顯示樹線
          enableTreeLines(mode)
          設(shè)置圖片
          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
          展開當(dāng)前節(jié)點(一節(jié))
          _openItem(node)
          openItem(itemId)
          合攏當(dāng)前節(jié)點(一節(jié))
          closeItem(itemId)
          獲取節(jié)點的層節(jié)數(shù)
          getLevel(itemId)
          設(shè)置節(jié)點是否允許被合攏
          setItemCloseable(itemId,flag)//flag 0/1
          對于展開節(jié)點返回子節(jié)點數(shù)量,對于未加載子節(jié)點的節(jié)點(異步加載)返回true
          hasChildren(itemId)
          獲取節(jié)點下的子節(jié)點數(shù)
          _getLeafCount(itemNode)
          設(shè)置節(jié)點名稱
          setItemText(itemId,newLabel,newTooltip)
          獲取節(jié)點tip
          getItemTooltip(itemId)
          刷新節(jié)點
          refreshItem(itemId)
          設(shè)置節(jié)點圖片
          setItemImage2(itemId, image1,image2,image3)//image1 - node without childrens image image2 - closed node image image3 - open node image
          設(shè)置節(jié)點圖片
          setItemImage(itemId,image1,image2)//image1 - node without childrens image or closed node image (if image2 specified)  image2 - open node image (optional)
          獲取節(jié)點下所有子節(jié)點id以逗號分割
          getSubItems(itemId)
          getAllSubItems(itemId)
          獲取節(jié)點的所有子節(jié)點
          _getAllScraggyItems(node)
          獲取選中節(jié)點的名稱--(with HTML formatting, if any)
          getSelectedItemText()
          設(shè)置節(jié)點的選中狀態(tài)
          setCheck(itemId,state)//state - checkbox state (0/1/unsure)
          設(shè)置節(jié)點及所有子節(jié)點的選中狀態(tài)
          setSubChecked(itemId,state)
          獲取節(jié)點的選中狀態(tài) return: node state (0 - unchecked,1 - checked, 2 - third state)
          isItemChecked(itemId)
          刪除節(jié)點的所有子節(jié)點
          deleteChildItems(itemId)
          刪除節(jié)點
          deleteItem(itemId,selectParent) //selectParent - If true parent of deleted item get selection, else no selected items leaving in tree.
          在節(jié)點下創(chuàng)建一個節(jié)點,前三個參數(shù)是必須的
          insertNewNext(itemId,newItemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs)
          根據(jù)index獲取節(jié)點下子節(jié)點的id
          getChildItemIdByIndex(itemId,index)//itemId 節(jié)點id
          設(shè)置拖動事件
          setDragHandler(func)
          設(shè)置是否允許拖拽
          //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)
          設(shè)置是否允許IE緩存
          preventIECashing=function(mode)//mode - enable/disable random seed ( disabled by default )
          設(shè)置是否允許選中節(jié)點名稱高亮顯示
          enableHighlighting(mode)//mode - 1 - on, 0 - off
          是否允許圖片可點擊和拖拽(clickable and dragable)
          enableActiveImages(mode)// mode - 1 - on, 0 - off
          設(shè)置節(jié)點獲得焦點
          focusItem(itemId)
          獲取所有無子節(jié)點的節(jié)點id
          getAllChildless()
          getAllLeafs()
          獲取所有有子節(jié)點的節(jié)點id
          getAllItemsWithKids()
          獲取所有被選中節(jié)點id,不包括第三中狀態(tài)的節(jié)點(部分選中的節(jié)點)
          getAllChecked()
          獲取所有被選中節(jié)點id,包括第三中狀態(tài)的節(jié)點(部分選中的節(jié)點)
          getAllCheckedBranches()
          獲取節(jié)點下所有未選中的節(jié)點id,不傳遞itemId表示從根節(jié)點開始查找
          getAllUnchecked(itemId)
          獲取所有部分選中的節(jié)點id(因部分子節(jié)點選中而被選中的節(jié)點)
          getAllPartiallyChecked()
          設(shè)置節(jié)點樣式
          setItemStyle(itemId,style_string)
          設(shè)置是否允許拖拽圖片
          enableImageDrag(mode)
          set function called when tree item draged over another item
          setOnDragIn(func)
          設(shè)置拖拽是是否允許自動滾動
          enableDragAndDropScrolling(mode)


          補充說明:加載樹時,必須確保所有節(jié)點的id不重復(fù),否則控件會為重復(fù)id自動生成一個隨機數(shù)(原id+"_"+當(dāng)前日期)。
          增加了一個dhtmlXTreeExtend.js對原類進行擴展,增加了getAllCheckedLeaf(),getAllUcCheckedLeaf()兩個函數(shù)
          修改了1個bug:
          1 增加沒有選中節(jié)點時執(zhí)行展開/收縮選定節(jié)點時報沒有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參數(shù)時默認(rèn)從根節(jié)點展開
          dhtmlXTreeObject.prototype.openAllItems=function(itemId)
             {
                if (itemId==window.undefined) itemId=this.rootId;
                var temp=this._globalIdStorageFind(itemId);
                if (!temp) return 0;
                this._xopenAll(temp);
             };
          主站蜘蛛池模板: 辽阳县| 永济市| 彝良县| 平邑县| 南宫市| 内丘县| 竹山县| 皮山县| 拜泉县| 博爱县| 陆川县| 曲麻莱县| 深泽县| 石柱| 天台县| 金山区| 柘荣县| 永兴县| 许昌市| 潼南县| 双流县| 烟台市| 嵊泗县| 仪征市| 吉木萨尔县| 菏泽市| 沙湾县| 蓝山县| 玉门市| 徐闻县| 关岭| 鄄城县| 鹤庆县| 上杭县| 麟游县| 公主岭市| 叶城县| 玛沁县| 隆尧县| 河北区| 连南|