我有很多panelGrid的,我想在单击panelGrid时打开一个对话框。
问题始终在最后一个面板网格中选择。
索引.xhtml
<p:dataGrid var="object" value="#{vc.objects}"
layout="grid" id="dataGridObject">
<h:panelGrid columns="1" onclick="rc()">
<h:outputText value="#{object.name} " />
<p:remoteCommand name="rc" update="formX"
oncomplete="PF('dlgDetails').show()" action="#{vc.updateSelectObject(object)}"/>
</h:panelGrid>
</p:dataGrid>
视图控制器.java
private Object selectObject;
public void updateSelectObject(Object object){
setSelectObject(object);
}
public Object getSelectObject() {
return selectObject;
}
public void setSelectObject(Object selectObject) {
this.selectObject = selectObject;
}
你为什么不尝试另一种方法。在这种情况下,使用 dataGrid,您可以将 outputText 和 remoteCommand 替换为 commandButton,并且可以将按钮样式设置为看起来像面板。
<p:dataGrid var="object" value="#{vc.objects}"
layout="grid" id="dataGridObject" columns="1">
<p:commandButton value="#{object.name}"
actionListener="#{vc.updateSelectObject(object)}" process="@this"
update="formX" oncomplete="PF('dlgDetails').show()" />
</p:dataGrid>