我正在尝试将contextMenu添加到选项卡中包含的dataTable。我已经能够将菜单显示在一个不在选项卡内的dataTable上,并且还要让它显示在整个选项卡上......但不是专门针对dataTable。
我在contextMenu的'for'属性中尝试了几个不同的引用...有些不高兴,有些则没有,但右键单击菜单没有显示。
我正在使用PrimeFaces 4.0。有什么建议吗?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:p="http://primefaces.org/ui">
<h:head></h:head>
<h:body>
<h:form id="someForm">
<p:tabView id="tv" var="tb" value="#{TempBeans.tabs}">
<p:ajax event="tabClose" listener="#{TempBeans.tabClose}"
update="@form" />
<p:tab id="tempTab" title="#{tb.name}" closable="true">
<p:dataTable id="dTable" var="d" value="#{tb.dtbs}">
<p:column id="column1" headerText="name">
<h:outputText value="#{d.name}" />
</p:column>
<p:column id="column2" headerText="id">
<h:outputText value="#{d.id}" />
</p:column>
</p:dataTable>
</p:tab>
</p:tabView>
<p:contextMenu for=":someForm:tv:dTable">
<p:menuitem value="TableView" update="@form" icon="ui-icon-search" />
<p:menuitem value="TableDelete" update="@form" icon="ui-icon-close" />
</p:contextMenu>
</h:form>
</h:body>
</html>
答案 0 :(得分:0)
好吧,通过将表格更改为可选择,我能够显示上下文菜单......这无论如何都是我想要的。但是,现在我还有另一个问题......如果我将selectionMode设置为“multiple”并使用ctrl-clicks选择行,则它似乎只需单击一次即可注册最后一次右键单击。
所以我似乎必须强迫我的用户:
AAAAAAAAAAAAAAAAAAAAAAAAAAARRRRGH !!交易破坏者...看起来我要回到史前时代,并用复选框实现多项选择。
请有人告诉我,我错了,并且有一种简单的方法可以让它不像这样。
无论如何,这是我最终设法让contextMenu出现的方式:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:p="http://primefaces.org/ui">
<h:head></h:head>
<h:body>
<h:form id="someForm">
<p:tabView id="tv" var="tb" value="#{TempBeans.tabs}">
<p:ajax event="tabClose" listener="#{TempBeans.tabClose}" update="@form" />
<p:tab id="tempTab" title="#{tb.name}" closable="true">
<p:dataTable id="dTable" var="d" value="#{tb.dtbs}" selection="#{tb.selectedDTBs}" selectionMode="multiple" rowKey="#{d.name}">
<p:column id="column1" headerText="name">
<h:outputText value="#{d.name}" />
</p:column>
<p:column id="column2" headerText="id">
<h:outputText value="#{d.id}" />
</p:column>
</p:dataTable>
<p:contextMenu id="cMenuId" for="dTable">
<p:menuitem value="TableView" update="@form" icon="ui-icon-search" />
<p:menuitem value="TableDelete" update="@form" icon="ui-icon-close" />
</p:contextMenu>
</p:tab>
</p:tabView>
</h:form>
</h:body>
</html>