[Primefaces] Afficher les détails d'un datatable dans un dialog
Bonjour à la communauté,
je désir afficher le détail d'une ligne de mon dataTable dans un dialog en cliquant sur un bouton (View).
J'arrive à afficher les données dans le tableau mais l'affichage du détail ne marche pas.
D'avance merci!
voici mon code :
page xhtml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| <h:form id="form">
<table align="center" cellspacing="0px" width="80%" style="height: 400px;">
<tr>
<td valign="top">
<p:dataTable style="font-size: 10pt;" emptyMessage="Aucune donnée disponible" sortMode="single"
value="#{indicateurMB.listCategorieIndicateurAll}" var="categorieindicateur"
widgetVar="carsTable"
rows="10" paginator="true"
paginatorPosition="bottom"
pageLinks="3">
<p:column width="10%" style="text-align: center" headerText="Code" filterMatchMode="contains" >
#{categorieindicateur.codeCategorieIndicateur}
</p:column>
<p:column headerText="Type Indicateur" sortBy="#{categorieindicateur.libelleCategorieIndicateur}" filterBy="#{categorieindicateur.libelleCategorieIndicateur}" filterMatchMode="contains">
#{categorieindicateur.libelleCategorieIndicateur}
</p:column>
<p:column>
<p:commandButton value="View" update=":form:categorieDetail" oncomplete="PF('categorieDiag').show();" >
<f:setPropertyActionListener value="#{categorieindicateur}" target="#{indicateurMB.categorieIndicateur}" />
</p:commandButton>
</p:column>
<p:column width="5%" style="text-align: center">
<h:commandLink>
<f:setPropertyActionListener target="#{indicateurMB.categorieIndicateurDelete}" value="#{categorieindicateur}"/>
<h:graphicImage value="/resources/images/delete.gif"/>
</h:commandLink>
</p:column>
</p:dataTable>
</td>
</tr>
</table>
<p:dialog id="showForm" widgetVar="categorieDiag" style="font-size: 10pt;" modal="true" resizable="false" header="Catégorie Indicateur">
<p:outputPanel id="categorieDetail" style="text-align:center;">
<br/>
<p:messages/>
<h:panelGrid columns="2" columnClasses="column-right, column-left">
<h:outputText value="Code"/>
<h:inputText value="#{indicateurMB.categorieIndicateur.codeCategorieIndicateur}" size="10"/>
<h:outputText value="Désignation"/>
<h:inputText value="#{indicateurMB.categorieIndicateur.libelleCategorieIndicateur}" size="50"/>
</h:panelGrid>
<br/>
<p:separator />
<p:commandButton value="Fermer" onclick="'categorieDiag'.hide();"/>
</p:outputPanel>
</p:dialog>
</h:form> |
Mon manage bean
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| public class IndicateurMB {
private CategorieIndicateur categorieIndicateur;
private List<CategorieIndicateur> listCategorieIndicateurAll;
/**
* Creates a new instance of IndicateurMB
*/
@Inject transient ParametreService parametreService;
public IndicateurMB1() {
}
public CategorieIndicateur getCategorieIndicateur() {
if(categorieIndicateur==null){
categorieIndicateur=new CategorieIndicateur();
}
return categorieIndicateur;
}
public void setCategorieIndicateur(CategorieIndicateur categorieIndicateur) {
this.categorieIndicateur = categorieIndicateur;
}
public List<CategorieIndicateur> getListCategorieIndicateurAll() {
if(listCategorieIndicateurAll==null){
listCategorieIndicateurAll=parametreService.getAllListeCategorieIndicateur();
}
return listCategorieIndicateurAll;
}
public void setListCategorieIndicateurAll(List<CategorieIndicateur> listCategorieIndicateurAll) {
this.listCategorieIndicateurAll = listCategorieIndicateurAll;
}
} |