выберите одну панель PanelGrid и установите объект - PullRequest
0 голосов
/ 18 июня 2020

У меня много panelGrid, я хочу открыть диалоговое окно, когда я нажимаю на panelGrid.

Проблема всегда выбирается последней panelGrid.

index.x html

<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;
}

1 Ответ

0 голосов
/ 19 июня 2020

Почему бы вам не попробовать другой подход. В этом случае с 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>
...