这是我的代码
<?page title="MVVM Tree POC"?>
<zk>
<borderlayout height="800px">
<west size="25%"></west>
<center>
<window apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('com.nagarro.controller.TreeController')"
title="Dynamic Tree" border="normal">
<tree multiple="true" checkmark="true" rows="5"
model="@bind(vm.employeeTreeModel)">
<treecols>
<treecol label="First Name" align="center" />
<treecol label="Last Name" align="center" />
<treecol label="Age" align="center" />
<treecol label="Index" align="center" />
</treecols>
<template name="model" var="node" status="s">
<treeitem checkable="true">
<treerow style="text-align:center;">
<treecell
label="@bind(node.data.firstName)" style="text-align:left;" />
<treecell
label="@bind(node.data.lastName)" />
<treecell label="@bind(node.data.age)" />
<treecell label="@bind(s.index)" />
</treerow>
</treeitem>
</template>
</tree>
</window>
</center>
</borderlayout>
</zk>
我检查了 zkoss reference 的多重选择属性,并在上面的 zul 文件中进行了必要的更改。它仍然不显示复选框。相反,它仅显示单选按钮。
另外,我想在某些选定的树节点前面显示复选框,而不是全部。
使用
setMultiple(true)
在
vm.employeeTreeModel
返回的模型实例上,而不是它本身的树上。如果您只想检查某些内容,请更改此
<treeitem checkable="true">
类似的事情
<treeitem checkable="@load(node.checkable)">
在@Nabil A.回答的帮助下,我发现如果你使用TreeitemRenderer,你需要像这样设置倍数:
public class MyItemRenderer implements TreeitemRenderer<DefaultTreeNode<MyObj>> {
public void render(final Treeitem item, DefaultTreeNode<MyObj> data, int index) {
data.getModel().setMultiple(true);
//rest of the code...
}
}