1

I am trying to implement a tree. I want users to be able to select leaf nodes by clicking on checkbox at each leaf nodes. But it is currently not working with the checkbox. The tree cannot expand.

Here is my tml code fragment

<t:zone t:id="treeZone" id="treeZone">
     <t:tree t:id="Tree" t:model="treeModel" t:node="treeNode" >
          <p:label>
                <t:if test="treeNode.leaf">
                        <input t:id="leafNode" t:type="checkbox" value="leaf" />
                        ${treeNode.label}

                    <p:else>
                         ${treeNode.label}
                    </p:else>
                </t:if>
           </p:label>
       </t:tree>
</t:zone>

If I take away

<input t:id="leafNode" t:type="checkbox" value="leaf" />

then the tree can expand. But I need the checkbox. Any help would be appreciated. Thanks.

4

1 回答 1

2

我只能假设您的日志文件中有异常。

我认为 Tree 组件目前不支持开箱即用的表单和字段组件。要在 a中支持<t:checkbox />等,您需要使用FormFragmentFormInjector做一些魔术。除非您是挂毯大师,否则我不建议您尝试这个。该代码可能看起来有点像AjaxFormLoop<t:textfield /><t:form />

我似乎记得 Howard Lewis Ship(Tapestry 的创建者)在推特上发布了关于在 Tapestry 5.4(当前未发布)中同时使用 Tree 和 Checkbox 的信息。您可能想查看 5.4 源代码。

如果你想快速修复,你可以渲染一个 html 复选框(不是挂毯组件,只是一个普通的 old <input type="checkbox" name="..." />)。这可能需要您在服务器端处理RequestParameter

于 2013-07-10T14:43:31.590 回答