首页 > 解决方案 > 选择一个panelGrid并设置对象

问题描述

我有很多panelGrid,我想在单击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;
}

标签: jsfprimefaces

解决方案


你为什么不尝试另一种方法。在这种情况下,使用 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>

推荐阅读