我正在尝试实现一棵树。我希望用户能够通过单击每个叶节点上的复选框来选择叶节点。但它目前无法使用复选框。树无法扩展。
这是我的tml代码片段
<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>
如果我带走
<input t:id="leafNode" t:type="checkbox" value="leaf" />
然后树可以扩展。但我需要复选框。 任何帮助,将不胜感激。感谢。
答案 0 :(得分:2)
我只能假设您的日志文件中有例外。
我认为Tree组件目前不支持开箱即用的表单和字段组件。要在<t:checkbox />
内支持<t:textfield />
和<t:form />
等,您需要对FormFragment和FormInjector做一些魔术。我不建议尝试这个,除非你是一个挂毯大师。代码可能看起来有点像AjaxFormLoop。
我似乎记得Howard Lewis Ship(Tapestry的创建者)在Tapestry 5.4(目前未发布)中一起发布关于使用Tree和Checkbox的推文。您可能需要查看5.4源代码。
如果你想快速修复,你可以渲染一个html复选框(不是tapestry组件,只是一个普通的<input type="checkbox" name="..." />
)。这可能需要您在服务器端处理RequestParameter。