zTree_v3 icon indicating copy to clipboard operation
zTree_v3 copied to clipboard

check中关于Half Check的几个问题

Open hwoarangzk opened this issue 10 years ago • 3 comments

你好,非常感谢你的ztree,让我们的业务开发更加高效。

不过这两天我碰到一个问题, 1.初始化时如何制定checkbox半选态,而不强制锁定(treeNode.halfCheck = true) 2.为什么设置了halfCheck时,className是false_part,而不是true_part? 3.为什么取消联动了(check.chkboxType = { Y: '', N: ''},仍然还会影响到父节点,导致其有false_part的状态

期待你的答复,在此谢过

hwoarangzk avatar Jun 24 '14 12:06 hwoarangzk

求作者正解,这里的half check逻辑和联动感觉不是很顺畅

mice530 avatar Jun 24 '14 12:06 mice530

  1. 半选状态本身就是一种 被动的设置,因为它完全收子节点的勾选状态而影响的。 但考虑到有的异步加载的情况, 子节点都没有完全被加载进来,所以才有了 halfCheck 这个属性用来强制锁定 halfCheck。 所以 不太清除你所说的 既要 设置 半选状态, 又不允许 halfCheck 进行锁定半选状态。。。
  2. 你可以看 我制作的 API, zTree中的半选 并不是为了表明 节点本身是否被勾选, 它是为了表明节点是否被全部被勾选, 所以 当自己本身没有被勾选,而子节点有勾选的时候, 就肯定是 false_part 了,这纯粹是为了满足 css 显示 checkbox 图标而设计的。
  3. 第一个问题已经回答了, 半选状态是被动的,是受子节点影响的,并不是节点本身的勾选状态。他与勾选的父子之间的 勾选联动是不一样的。 可以说 半选状态是一种 数据之间的关联关系形成的状态值, 并不是那种 子节点勾选,父节点就勾选的 联动状态。 毕竟根据不同的需求我可以不希望 父节点被勾选。。。但 半选状态就不一样了, 只要子节点有勾选, 他的父节点可能就是会有 半勾选的状态出现,这是数据模型造成的,是不可改变的。

最后,如果你不希望显示半勾选 的状态,只需要修改一下 zTreeStyle ,让 半勾选的时候都显示成 全勾选,或 未勾选的 图标即可。。。其实只是个表现形式而已

zTree avatar Jun 25 '14 06:06 zTree

初始化的时候需要还原半选状态,当子节点展开时,又希望该半选状态能自动根据子节点的勾选状态联动

anrananran avatar Dec 09 '19 04:12 anrananran