Próbuję dodać contextMenu w drzewie, aby wykonać niestandardową akcję. To drzewo jest zaimplementowane wewnątrz nakładki. Zauważyłem, że contextMenu pojawia się tylko w przypadkowych sytuacjach, takich jak po zaznaczeniu i odznaczeniu niektórych elementów na drzewie. Dowolny pomysł?Primefaces: ContextMenu nie pojawia się w overlayPanel
<p:overlayPanel id="advancedSearchPanel"
styleClass="ui-advanced-search-overlay"
for="advancedSearch"
hideEffect="fade"
my="right top"
widgetVar="advancedSearchPanelWidgetVar" >
<ui:include src="/search/advancedSearch-form.xhtml"/>
</p:overlayPanel>
advancedSearch-forma
<p:panelGrid id="panelAdvanced" styleClass="borderless">
...
<p:row>
<p:column colspan="4">
<p:outputLabel value="#{text['searchForm.classifiers']}" for="treeClassifier" styleClass="paddingLabelGrid"/>
<p:contextMenu id="contextSearch" for="treeClassifier">
<p:menuitem value="Escolha todos" update=":searchForm:treeClassifier" actionListener="#{navBarController.displaySelectedSingle}"/>
</p:contextMenu>
<p:tree id="treeClassifier"
value="#{navBarController.rootClassifier}"
var="node" selectionMode="checkbox"
selection="#{navBarController.selectedClassifiers}"
style="height: 200px;width: 540px; margin-bottom: 0px; overflow: auto"
propagateSelectionDown="false"
propagateSelectionUp="false">
<p:ajax event="select" update=":searchForm:btnSearch"/>
<p:ajax event="unselect" update=":searchForm:btnSearch"/>
<p:treeNode expandedIcon="ui-icon-folder-open" collapsedIcon="ui-icon-folder-collapsed">
<h:outputText value="#{node.description}(#{node.code})"/>
</p:treeNode>
</p:tree>
</p:column>
</p:row>
...
Proszę wyjaśnić wiele informacji. Czy chcesz zmienić drzewo po wybraniu contextMenu? – wittakarn
Dlaczego milczysz, kod działa? – 0x5a4d
Nie, próbuję twojego kodu, ale funkcja onContextMenu nigdy nie zostanie osiągnięta. – tech4