文件树中的复选框
Checkboxes Inside A File Tree
所以问题是我收到一个关于在文件树中生成的复选框需要在表单元素中的运行时错误。事情是,它在一个表单元素内,但表单元素像这样包裹在树周围:
<t:Form t:id="form>
<t:Tree t:id="tree" model="model" node="node">
<p:label>
${node.label}
<t:Checkbox value="checkboxNode.selected" />
</p:label>
</t:Tree>
</t:Form>
节点的根级别生成复选框没有问题。但是,当我 select 加号展开树分支时,它会抛出分支复选框的错误。如果我刷新页面并记住哪些分支已展开,这就会消失。如果我去扩展更多,那么它会再次抛出错误。如果我最小化一个分支然后再次展开它,也会发生同样的事情。
我怀疑这与扩展树如何使用 AJAX 调用生成其字段有关,并且它无法检测到包裹在外面的表单。我想到的两种可能的解决方法是:
- 默认节点展开并禁用最小化功能。尽管如此,我还是失去了文件树的交互和组织优势之一。
- 在标签内放一个表格。虽然这会创建很多不必要的额外表格,但我不太确定如何将其整合到创建群组列表的最终目标中,以便根据 selected 标签向其发送电子邮件。
这里的任何人都对更好地解决此问题有任何见解,或者可能告诉生成的复选框识别外部表单而无需重新加载页面的方法?
如JavaDoc for the Tree
component所述:
Tree is not a form control component...
看看 AjaxFormLoop
的源代码和它处理 AJAX 表单更新的方式,我相信你需要构建一个自定义组件来满足你的需要。
最终使用了不同的路线。我 运行 关于复选框的问题是一个破坏交易的问题,我想不出一种方法来告诉服务器端的布尔值根据客户端的复选框进行更新。
原因是布尔值是根据需要生成的,而不是页面 Java 侧的固定集合。尝试通过将唯一 ID 链接到服务器端的布尔值来解决这个问题,但即使那样我也无法确定将这些 ID 关联到客户端复选框的方法。
所以我改用事件链接,它可以获取上下文。我只是将生成的树节点 ID 作为上下文传入,它可以在事件链接中搜索节点并将其添加到服务器上的 "selected" 列表中。
所以问题是我收到一个关于在文件树中生成的复选框需要在表单元素中的运行时错误。事情是,它在一个表单元素内,但表单元素像这样包裹在树周围:
<t:Form t:id="form>
<t:Tree t:id="tree" model="model" node="node">
<p:label>
${node.label}
<t:Checkbox value="checkboxNode.selected" />
</p:label>
</t:Tree>
</t:Form>
节点的根级别生成复选框没有问题。但是,当我 select 加号展开树分支时,它会抛出分支复选框的错误。如果我刷新页面并记住哪些分支已展开,这就会消失。如果我去扩展更多,那么它会再次抛出错误。如果我最小化一个分支然后再次展开它,也会发生同样的事情。
我怀疑这与扩展树如何使用 AJAX 调用生成其字段有关,并且它无法检测到包裹在外面的表单。我想到的两种可能的解决方法是:
- 默认节点展开并禁用最小化功能。尽管如此,我还是失去了文件树的交互和组织优势之一。
- 在标签内放一个表格。虽然这会创建很多不必要的额外表格,但我不太确定如何将其整合到创建群组列表的最终目标中,以便根据 selected 标签向其发送电子邮件。
这里的任何人都对更好地解决此问题有任何见解,或者可能告诉生成的复选框识别外部表单而无需重新加载页面的方法?
如JavaDoc for the Tree
component所述:
Tree is not a form control component...
看看 AjaxFormLoop
的源代码和它处理 AJAX 表单更新的方式,我相信你需要构建一个自定义组件来满足你的需要。
最终使用了不同的路线。我 运行 关于复选框的问题是一个破坏交易的问题,我想不出一种方法来告诉服务器端的布尔值根据客户端的复选框进行更新。
原因是布尔值是根据需要生成的,而不是页面 Java 侧的固定集合。尝试通过将唯一 ID 链接到服务器端的布尔值来解决这个问题,但即使那样我也无法确定将这些 ID 关联到客户端复选框的方法。
所以我改用事件链接,它可以获取上下文。我只是将生成的树节点 ID 作为上下文传入,它可以在事件链接中搜索节点并将其添加到服务器上的 "selected" 列表中。