Primefaces迁移指南5.3至6.0:
ContextMenu:p:contextMenu必须现在放在xhtml中的目标组件(例如数据表)之后。
我完全尝试过,但是没有用。根本没有菜单。
在ContextMenu
之前放置dataTable
:显示菜单。浏览器控制台上的其他输出:
ContextMenu定位尚不可用的小部件。请将contextMenu放在目标组件之后。 targetWidgetVar:widget_base_cars
我的Webshpere自由日志:
...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>
我希望右键单击即可显示菜单。
是错误还是我的错误?
答案 0 :(得分:1)
我围绕PF 5.3 / 6.0 / 7.0复制了此测试。只要您无法选择p:dataTable
,我就会与您在一起:
将p:contextMenu
添加到xhtml中的{strong>上方元素时,会在右键单击时显示。 在下面添加后,根本不会显示任何上下文菜单。但是tbh .:上下文菜单在不允许选择的数据表上有用吗?
在通过添加属性使其变为可选时
p:dataTable
它的行为如下:
selection="#{myBean.selectedValue}" selectionMode="singel"
下方的p:contextMenu
上:在右键单击时,将选择被单击的行,并在其上显示上下文菜单。p:dataTable
上方的p:contextMenu
:右键单击时,将显示上下文菜单,但未选择该行。因此,如果在表上方添加了p:dataTable
,则选择无法按预期进行,这一定是迁移指南告诉“在下面添加!”的原因。
顺便说一句:在测试期间,我没有在JavaScript控制台中收到该警告,不知道为什么。