2010-11-30 26 views
2

Comment afficher un message « Aucune donnée trouvée » dans un h: dataTable ou riche: dataTable. L'en-tête de la table doit indiquer les champs Nom, Numéro de rôle et Classe; L'interface utilisateur doit montrer l'en-tête et un message Aucune donnée disponible dans la section de données de l'h: dataTableAucune donnée trouvée message dans h: dataTable ou riche: dataTable?

Merci.

Répondre

3

Ce n'est pas possible avec h:dataTable ou rich:dataTable. Le PrimeFacesp:dataTable a un attribut emptyMessage qui fait exactement cela.

Votre meilleur pari est de mettre un message sous la table qui est rendue lorsque la table est vide. Vous pouvez utiliser CSS pour lui donner le même style que la table afin qu'il ressemble à une partie de la table.

<h:dataTable value="#{bean.list}"> 
    ... 
</h:dataTable> 
<h:outputText value="Table is empty" rendered="#{empty bean.list}"> 
+0

Si vous supprimez l'attribut rendu pour datatable, la sortie sera le même que celui qu'il attend !!!!! – mvg

+0

@mvg: bon point. – BalusC

+0

Pour le bénéfice de quelqu'un trouver cela plus tard: RF-3.3 'riche: extendedDataTable' a' noDataLabel' et RF-4.x cet attribut peut être utilisé sur 'riche: dataTable' aussi. – mabi

3

Juste une suggestion pour le rendre plus facile de faire le vide message d'une partie de la table, si vous ne l'utilisez le pied de la table de toute façon:

... 
</h:column> 
<f:facet name="footer"> 
    <h:outputText value="Table is empty" styleClass="someStyleClass" rendered="#{empty bean.list}" /> 
</f:facet> 
</h:datatable> 

Certains style pourrait être nécessaire de toute façon, mais à mon avis, il semble mieux dans votre code source.

+1

Merci. Ça fonctionne bien pour moi. –

+0

bonne idée !!! Merci – Selva

1

complètement possible.

function myFunc(){ 
 
    $('#bodyForm\\:assetTrackingTravellingTable').grDataTable({ 
 
    sDom : 'zrtp' 
 
}); 
 
    
 
    }

 
<script type="text/javascript" 
 
\t \t src="#{facesContext.externalContext.requestContextPath}/member/assets/js/jquery.dataTables.js"></script> \t 
 
\t <link rel="stylesheet" type="text/css" 
 
\t \t href="#{facesContext.externalContext.requestContextPath}/member/assets/css/jquery.dataTables.css" /> 
 

 
<rich:dataTable id="assetTrackingTravellingTable" ...

-1
<rich:dataTable value="#{bean.list}" var="var"> 
    <f:facet name="noData"> 
     No data message 
    </f:facet> 
    <rich:column> 
     <f:facet name="header"><h:outputText value="Field A"/></f:facet> 
     <h:outputText value="#{var.fieldA}"/> 
    </rich:column> 
    ... 
</rich:dataTable>