找回密码
 立即注册

QQ登录

只需一步,快速开始

CSCWijmo

金牌服务用户

47

主题

133

帖子

420

积分

金牌服务用户

积分
420

微信认证勋章

CSCWijmo
金牌服务用户   /  发表于:2020-6-2 09:45  /   查看:3526  /  回复:1
treeview支持部分节点复选框不可选中么,我这边需要判断不是最末级节点,不能选中。

1 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-6-2 14:19:38
沙发
这个没有直接控制的接口,但可以自己实现,参考以下代码:

  1. import 'bootstrap.css';
  2. import '@grapecity/wijmo.styles/wijmo.css';
  3. import './styles.css';
  4. import * as wjNav from '@grapecity/wijmo.nav';
  5. import { getData } from './data';
  6. //
  7. document.readyState === 'complete' ? init() : window.onload = init;
  8. //
  9. function init() {
  10.     let tree = new wjNav.TreeView('#theTree', {
  11.         itemsSource: getData(),
  12.         displayMemberPath: 'header',
  13.         childItemsPath: 'items',
  14.         showCheckboxes: true,
  15.         //
  16.         // show checked items below the tree
  17.         checkedItemsChanged: (sender) => {
  18.             let items = sender.checkedItems, msg = '';
  19.             //
  20.             if (items.length) {
  21.                 msg = '<p><b>Checked Items:</b></p><ol>\r\n';
  22.                 for (let i = 0; i < items.length; i++) {
  23.                     msg += '<li>' + items[i].header + '</li>\r\n';
  24.                 }
  25.                 msg += '</ol>';
  26.             }
  27.             //
  28.             document.getElementById('tvChkStatus').innerHTML = msg;
  29.         }
  30.     });

  31.     var nodes = tree.nodes;
  32.     function getArray(nodes)
  33.     {
  34.         for (var i in nodes) {
  35.             if (nodes[i].hasChildren) {
  36.                 console.log(nodes[i].element);
  37.                 nodes[i].element.getElementsByClassName('wj-node-check')[0].disabled=true;
  38.                 getArray(nodes[i].nodes);
  39.             }
  40.         }
  41.     }
  42.     getArray(nodes);
  43.    
  44.     //
  45.     let checkedItems = [];
  46.     //
  47.     // handle buttons
  48.     document.getElementById('btnCheckAll').addEventListener('click', () => {
  49.         tree.checkAllItems(true);
  50.     });
  51.     //
  52.     document.getElementById('btnUncheckAll').addEventListener('click', () => {
  53.         tree.checkAllItems(false);
  54.     });
  55.     //
  56.     document.getElementById('btnSaveState').addEventListener('click', () => {
  57.         checkedItems = tree.checkedItems || [];
  58.     });
  59.     //
  60.     document.getElementById('btnRestoreState').addEventListener('click', () => {
  61.         tree.checkedItems = checkedItems;
  62.     });
  63. }
复制代码


这部分代码完整拷贝到示例的app.js中就可以看到效果了。

https://www.grapecity.com/wijmo/ ... s/Checkboxes/purejs
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部