【发布时间】:2019-04-10 14:37:15
【问题描述】:
Primefaces 迁移指南 5.3 到 6.0:
ContextMenu:p:contextMenu 现在必须放在 xhtml 中的目标组件(例如数据表)之后。
我确实试过了,但它不起作用。根本没有菜单。
将ContextMenu 放在dataTable 之前:正在显示菜单。浏览器控制台上的附加输出:
ContextMenu 以一个尚不可用的小部件为目标。请将 contextMenu 放在目标组件之后。 targetWidgetVar: widget_base_cars
我的 Webshpere Liberty 日志:
...org.primefaces.webapp.PostConstructApplicationEventListener I Running on PrimeFaces 7.0
Java:
java.version = 1.8.0_102
<h:body>
<h1>Context Menu</h1>
<h2>ContextMenu: p:contextMenu must be placed AFTER the target component</h2>
<h:form id="base" >
<p:dataTable id="cars" var="car" value="#{dtContextMenuView.cars}" rowKey="#{car.id}" >
<f:facet name="header">
List with #{dtContextMenuView.numberOfCars} Items
</f:facet>
<p:column headerText="Id">
<h:outputText value="#{car.id}" />
</p:column>
<p:column headerText="Year">
<h:outputText value="#{car.year}" />
</p:column>
<p:column headerText="Brand">
<h:outputText value="#{car.brand}" />
</p:column>
<p:column headerText="Color">
<h:outputText value="#{car.color}" />
</p:column>
</p:dataTable>
<p:contextMenu for="cars" >
<p:menuitem value="Hello" />
<p:menuitem value="World" />
</p:contextMenu>
<h2>but it fails</h2>
</h:form>
</h:body>
我希望菜单在右键单击时显示。
这是一个错误,还是我是一个错误?
【问题讨论】: