`

让XTREE支持CHECKBOX

阅读更多
转载:
js 代码
  1.   
  2.   
  3. 在xtree.js的最后添加   
  4. function WebFXCheckBoxTreeItem(sText, sAction, bChecked, eParent, sIcon, sOpenIcon) {   
  5. this.base = WebFXTreeItem;   
  6. this.base(sText, sAction, eParent, sIcon, sOpenIcon);   
  7.   
  8. this._checked = bChecked;   
  9. }   
  10.   
  11. WebFXCheckBoxTreeItem.prototype = new WebFXTreeItem;   
  12.   
  13. WebFXCheckBoxTreeItem.prototype.toString = function (nItem, nItemCount) {   
  14. var foo = this.parentNode;   
  15. var indent = '';   
  16. if (nItem + 1 == nItemCount) { this.parentNode._last = true; }   
  17. var i = 0;   
  18. while (foo.parentNode) {   
  19. foo = foo.parentNode;   
  20. indent = " + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;   
  21. i++;   
  22. }   
  23. this._level = i;   
  24. if (this.childNodes.length) { this.folder = 1; }   
  25. else { this.open = false; }   
  26. if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {   
  27. if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }   
  28. if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }   
  29. }   
  30. else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }   
  31. var label = this.text.replace(//g, '>');   
  32. var str = " + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this, event)\">";   
  33. str += indent;   
  34. str += " + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"  
  35.   
  36. // insert check box   
  37. str += " +   
  38. " class=\"tree-check-box\"" +   
  39. (this._checked ? " checked=\"checked\"" : "") +   
  40. " onclick=\"webFXTreeHandler.all[this.parentNode.id].setChecked(this.checked)\"" +   
  41. " />";   
  42. // end insert checkbox   
  43.   
  44. str += " + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"> + this.action + "\" id=\"" + this.id + "-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + ";   
  45. str += " + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";   
  46. for (var i = 0; i < this.childNodes.length; i++) {   
  47. str += this.childNodes[i].toString(i,this.childNodes.length);   
  48. }   
  49. str += " ";   
  50. this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);   
  51. this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);   
  52. return str;   
  53. }   
  54.   
  55. WebFXCheckBoxTreeItem.prototype.getChecked = function () {   
  56. var divEl = document.getElementById(this.id);   
  57. var inputEl = divEl.getElementsByTagName("INPUT")[0];   
  58. return this._checked = inputEl.checked;   
  59. };   
  60.   
  61. WebFXCheckBoxTreeItem.prototype.setChecked = function (bChecked) {   
  62. if (bChecked != this.getChecked()) {   
  63. var divEl = document.getElementById(this.id);   
  64. var inputEl = divEl.getElementsByTagName("INPUT")[0];   
  65. this._checked = inputEl.checked = bChecked;   
  66.   
  67. if (typeof this.onchange == "function")   
  68. this.onchange();   
  69. }   
  70. };   

     



    并且在tree.js调用时把WebFXTreeItem 改成 WebFXCheckBoxTreeItem 其他的具体的你可以看下注视
    xtree的作者 非常仔细地注释

"

分享到:
评论

相关推荐

    xtree+checkbox+radio,xloadtree+checkbox+radio

    `xtree`的一个显著特点就是支持复选框功能,用户可以通过勾选或取消复选框来选择一个或多个节点,这对于多选操作非常有用。 另一方面,`xloadtree`是在`xtree`基础上进行了扩展,增加了异步加载(ajax加载)的能力...

    xtree

    4. **算法实现**:在实现某些高级算法,如最短路径算法、优先队列等,xtree可以提供高效的数据结构支持。 ### 五、xtree与关联容器的比较 除了xtree,STL还提供了其他关联容器,如`std::set`、`std::multiset`、`...

    扩展xtree选择树

    - `xvtree.js`:可能包含xtree的扩展功能或特定版本的实现,例如,可能添加了对虚拟化树的支持,以处理大量数据。 - `xmlextras.js`:可能包含额外的XML处理功能,因为xtree常用于处理XML数据,这个文件可能提供了...

    xTree帮助

    5. **链接与快捷方式**:xTree支持创建书签或快捷方式,方便用户快速访问常用的位置。 6. **权限与安全**:对于支持权限控制的系统,xTree可以帮助用户查看和管理文件或目录的访问权限。 7. **备份与恢复**:xTree...

    xtree1.1和例子

    "xtree1.1和例子" 是一个与前端开发相关的主题,主要涉及到的是一个叫做 xtree 的库或者框架。这个库可能是一个用于构建交互式树形结构的JavaScript组件,适用于展示层级关系的数据,如文件系统、组织架构或者导航...

    xTree

    xTree因其简洁易用、功能完善而受到用户喜爱,对比其他同类工具,例如“梅花雪”树形菜单,xTree在用户体验和文档支持方面具有一定的优势。 **1. JavaScript基础** JavaScript是一种广泛应用于网页和网络应用的...

    XTree

    此外,XTree还支持事件监听,比如`onClick`、`onCheck`等,可以捕获用户的交互行为并进行相应的处理。这使得XTree成为一个强大的工具,不仅可以用于构建导航菜单,还能用于构建数据驱动的决策树、文件系统浏览器,...

    XTree生成树状菜单

    - **异步加载**:对于大型数据集,XTree支持按需异步加载,提高页面性能。 - **自定义样式和图标**:开发者可以定制每个节点的样式和图标,以满足不同的视觉需求。 4. **XTree的使用** - **初始化**:在HTML中...

    xtree开发包

    xtree作为一款专门用于开发的工具包,其核心在于提供了一种高效、灵活的树型数据结构,为开发者提供了强大的支持。本文将深入探讨xtree开发包的相关知识,包括其设计理念、主要功能、应用场景以及如何使用。 首先,...

    xtree源包及使用实例

    **XTREE源包及使用实例详解** XTREE是一种用于构建动态树形结构的数据结构,它在计算机科学中常被用于组织和操作数据。这个数据结构允许高效地进行插入、删除和查找操作,特别适合处理层次化的信息。在IT行业中,...

    xtree一颗完整的树xtree+oracle+struts

    它提供了丰富的API,允许开发者动态添加、删除和更新节点,支持事件监听,以及自定义节点样式和行为。在Web应用中,xtree通常与后端服务配合,通过Ajax技术获取并显示数据,实现了前后端分离的数据展示模式。 ...

    xtree demo

    xtree.js 就是用来处理这种数据的工具,它可以动态加载数据,支持节点的展开与折叠,以及各种交互操作,如点击、拖拽等。 xtree.js 的核心功能可能包括以下几点: 1. **数据绑定**:允许开发者将JSON或其他格式的...

    xtree下载 树状图

    xtree可能是提供了一种高效的方式,让用户能够一次性加载整个树形结构,以便于快速浏览和操作,正如描述中提到的“方便使用快捷,挺不错的”。 树形结构在计算机科学中有着广泛的应用,特别是在文件系统、数据库...

    js树,xtree,纯js

    1. **纯JavaScript实现**:XTree完全使用JavaScript编写,无需依赖其他库如jQuery,这使得它能够在任何支持JavaScript的环境中运行,包括浏览器和服务器端环境如Node.js。 2. **自定义可扩展**:XTree允许开发者根据...

    XTree XML生成树 帮助文档

    - XTree通常支持自定义节点图标、展开/折叠行为、节点颜色等视觉效果,以提供更好的用户体验。 - 还可以通过扩展其API,实现更复杂的逻辑,比如动态加载子节点、搜索功能、拖放操作等。 5. **性能优化**: - ...

    完整的xtree例子 和jsp联系

    3. **动态加载子节点**:在大型数据集下,为了提高性能,`xtree`支持按需加载子节点,即当用户展开父节点时才向服务器请求子节点数据。这种懒加载策略可以显著减少初次页面加载时的数据量。 4. **交互操作**:`...

    用js写的tree组件 xtree2

    9. **无障碍性**:为了使组件对所有用户都友好,XTree2应该遵循无障碍(Web Accessibility)标准,比如使用ARIA属性和键盘导航支持。 10. **模块化和打包**:作为一个现代JS组件,XTree2可能遵循模块化设计,如使用...

    xtree树形菜单开发库

    XTREE是一个基于AJAX实现的树形菜单。它的原理就是每次都只加载当前结点下的所有结点,而对开发人员来说,就是只需要按一定的格式,生成一段 XML代码。XTREE可以自己定制每个结点的ICON和链接。XTREE是基于对象的,...

    js树形xtree117

    8. **多语言支持**:js tree支持多语言,通过`language`配置项可以设置语言,或者自定义语言包。 9. **主题与样式**:js tree允许自定义主题和样式,以适应不同项目的视觉需求。 10. **无障碍性(Accessibility)*...

Global site tag (gtag.js) - Google Analytics