ace:在ace:tree里面的checkboxButton。未调用事件侦听器

时间:2017-02-24 15:19:03

标签: jsf-2 icefaces

你好我是JSF冰面的新手,我坚持一点。

我在树中有checkboxButton。复选框具有关联的动作侦听器。 问题是仅针对顶级复选框(在根节点处)调用操作侦听器,而不是针对位于树的子级或叶级的复选框。我错过了什么吗?

<ace:tree var="treeNode" value="#{clientUserAdmin.segmentationTree}" expansion="true"  selection="false"  reordering="false"
                                rendered="#{!empty clientUserAdmin.clientAccessSelectList and !clientUserAdmin.currentProfile.allSegmentations and user.currentProject.isSegmentationManual}" >
                                <ace:node>
                                        <h:panelGroup style="display: inline">
                                        <ace:checkboxButton partialSubmit="true"
                                            value="#{treeNode.userObject.treeNodeSelected}"
                                            valueChangeListener="#{clientUserAdmin.onSegmentationAccessChange}"
                                            styleClass="#{treeNode.userObject.classStyle}"
                                            disabled="#{treeNode.userObject.checkBoxDisabled}" >
                                            <ace:ajax execute="@this" render="@all" />
                                            </ace:checkboxButton>
                                        </h:panelGroup>

                                        <h:panelGroup style="display: inline">
                                            <h:outputText value="#{treeNode.userObject.text}"
                                                styleClass="#{treeNode.userObject.classStyle}" />
                                        </h:panelGroup>
                                </ace:node>
                            </ace:tree>

我可以看到请求被发送到服务器,并且总是为每个复选框值更改执行onSuccess。但永远不会为子节点复选框调用值更改侦听器。

提前致谢

1 个答案:

答案 0 :(得分:0)

我无法找到原始问题的解决方案。

我更改为我的代码使用h:selectBooleanCheckbox而不是ace:checkboxButton

而不是ace:ajax execute =“@ this”render =“@ all”,我改为 f:ajax event =“click”execute =“@ form”render =“@ form”

现在它按预期工作了。如果有人能够解释正在发生的事情,那将是一个很大的帮助。

感谢。