右键单击PrimeFaces树节点不会触发选择事件

时间:2018-08-10 12:17:12

标签: jsf primefaces

我正在使用带有上下文菜单的PrimeFaces 6.2 p:tree组件,该菜单对于每个节点都不同。当我左右单击鼠标右键时,菜单会正确显示,但是当我直接单击鼠标右键时,菜单不会更新。有什么解决方法的想法吗?

我知道右键单击(事件contextMenu)后有一些有关ajax的帖子,但这没有帮助,因为上下文菜单消失了。

示例p:tree如下所示:

<p:tree id="docs" value="#{treeContextMenuView.root}" var="doc"
    selectionMode="single"
    selection="#{treeContextMenuView.selectedNode}" dynamic="true">
    <p:ajax event="select" update="form:contextMenu" />
    <p:treeNode expandedIcon="ui-icon-folder-open"
        collapsedIcon="ui-icon-folder-collapsed">
        <h:outputText value="#{doc.name}" />
    </p:treeNode>
    <p:treeNode type="document" icon="ui-icon-document">
        <h:outputText value="#{doc.name}" />
    </p:treeNode>
    <p:treeNode type="picture" icon="ui-icon-image">
        <h:outputText value="#{doc.name}" />
    </p:treeNode>
    <p:treeNode type="mp3" icon="ui-icon-video">
        <h:outputText value="#{doc.name}" />
    </p:treeNode>
</p:tree>

并像这样采样p:contextMenu

<p:contextMenu for="docs" id="contextMenu">
    <p:menuitem value="View" update="messages"
        actionListener="#{treeContextMenuView.displaySelectedSingle}"
        icon="ui-icon-search" />
    <p:menuitem value="Item for Documents"
        rendered="#{treeContextMenuView.selectedNode.data.name eq 'Documents'}"
        icon="ui-icon-print" />
    <p:menuitem value="Delete" update="docs"
        actionListener="#{treeContextMenuView.deleteNode}"
        icon="ui-icon-close" />
</p:contextMenu>

完全可复制的MVCE:https://github.com/szydra/primefaces-test

编辑:最近,我发现了与p:dataTable相同的问题: issue on github

0 个答案:

没有答案