ZK - 根据模型内容向Treeitem添加组件

时间:2012-07-15 13:25:05

标签: java zk

所以,我想添加一个特定的组件(Checkbox或Textbox),具体取决于我当前节点的AttType字段。我的zul文件如下所示:

<tree id="permissionTree" width="100%"
        model="@bind(vm.treeModel)" style="text-align:left;">
        <treecols>
            <treecol label="Item" width="400px" />
            <treecol label="Wert" />
        </treecols>
        <template name="model" var="node">
            <treeitem>
                <treerow>
                    <treecell label="@load(node.data.name)" />

                    <treecell> HERE COMPONENT DEPENDING ON node.data.AttType </treecell>
                </treerow>
            </treeitem>
        </template>
    </tree>

我怎样才能做到这一点?哦,我希望Textbox / Checkbox值作为String绑定到我的模型,这将是非常好的。

感谢您的任何建议。

编辑:我为自己做了一点“解决方法”。由于我只有3种可能的输入类型,我只是将它们定义为硬编码:

<tree id="permissionTree" width="100%"
        model="@bind(vm.treeModel)" style="text-align:left;">
        <treecols>
            <treecol label="Item" />
            <treecol label="Wert" />
        </treecols>
        <template name="model" var="node">
            <treeitem open="@bind(node.open)" onClick="@command('expandNode', item=node)">
                <treerow>
                    <treecell label="@load(node.data.name)" />
                    <treecell>
                        <textbox visible="@load(node.data.isTextbox)" value="@bind(node.data.value)" />
                        <textbox visible="@load(node.data.isTextarea)" rows="6" width="300px" value="@bind(node.data.value)" />
                        <checkbox visible="@load(node.data.isCheckbox)" checked="@bind(node.data.checkboxValue)" />
                    </treecell>
                </treerow>
            </treeitem>
        </template>
    </tree>

在TreeNode的构造函数中,我根据类型设置了isTextbox / isTextarea / isCheckbox值。这样模型绑定仍然有效:)

1 个答案:

答案 0 :(得分:0)

正如您在上一个问题中提到的:使用treeitem渲染器并添加您需要的项目。我认为绑定不适用于新组件。