select 一个 panelGrid 和一组对象

select one panelGrid and set object

我有很多 panelGrid,我想在单击 panelGrid 时打开一个对话框。

问题是总是选择最后一个panelGrid。

index.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>

ViewController.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>