我有一张桌子,我想点击一个单元格并向我显示一个对话框 但只有我有rowSelect事件,有可能这样做吗?...
所以在这种情况下我单击一行,然后在对话框中显示对象值,但我想点击一个块给我看一个对话框
<h:form id="frm1">
<p:growl id="growl" showDetail="true"/>
<p:commandButton value="List" actionListener="#{tableBean.listCars()}" update="dtCar"/>
<p:dataTable id="dtCar" var="car" value="#{tableBean.carModel}"
selectionMode="single" >
<p:ajax event="rowSelect" listener="#{tableBean.readModel}"
update=":frm1:display :frm1:growl" oncomplete="carDialog.show()" />
<p:column id="model">
<f:facet name="header">
Model
</f:facet>
<h:outputText value="#{car.model}" />
</p:column>
<p:column id="year">
<f:facet name="header">
Year
</f:facet>
<h:outputText value="#{car.year}" />
</p:column>
<p:column id="manufacturer">
<f:facet name="header">
Manufacturer
</f:facet>
<h:outputText value="#{car.manufacturer}" />
</p:column>
<p:column id="color">
<f:facet name="header">
Color
</f:facet>
<h:outputText value="#{car.color}" />
</p:column>
<p:column>
<p:commandButton id="viewButton" value="View" icon="ui-icon-search"
update=":frm1:display" oncomplete="carDialog.show()" actionListener="#{tableBean.leer(car)}"/>
</p:column>
</p:dataTable>
<p:dialog id="dialog" header="Car Detail" widgetVar="carDialog" resizable="false"
showEffect="clip" hideEffect="fold">
<h:panelGrid id="display" columns="2" cellpadding="4">
<h:outputText value="Model:" />
<h:outputText value="#{tableBean.selectedCar.model}" />
<h:outputText value="Year:" />
<h:outputText value="#{tableBean.selectedCar.year}" />
<h:outputText value="Manufacturer:" />
<h:outputText value="#{tableBean.selectedCar.manufacturer}" />
<h:outputText value="Color:" />
<h:outputText value="#{tableBean.selectedCar.color}" />
</h:panelGrid>
</p:dialog>
</h:form>
答案 0 :(得分:4)
Primefaces不为细胞选择提供库存支持。你需要即兴发挥。
在面板组件中包裹所需的单元格
<p:column id="model">
<f:facet name="header">
Model
</f:facet>
<h:panelGrid>
<h:outputText value="#{car.model}" />
</h:panelGrid>
</p:column>
向panelGrid添加onclick
属性,该属性将触发菜单
<p:column id="model">
<f:facet name="header">
Model
</f:facet>
<h:panelGrid onclick="dialog.show()">
<h:outputText value="#{car.model}" />
</h:panelGrid>
</p:column>
dialog
指的是与widgetVar="dialog"
在同一页面上的对话框。您可以对您感兴趣的所有单元格重复此操作