En JSF, h:dataTable
et h:panelGrid
à la fois de créer html table
-tags.
Quelle est la différence entre les deux?
Quand utiliser l'un ou l'autre?
Dans un écrou: utilisation h:dataTable
pour un tableau dynamique et h:panelGrid
pour un tableau statique.
OriginalL'auteur Jan | 2010-07-29
Comme son nom l'indique
h:dataTable
est principalement utilisé pour l'affichage d'une table contenant des données à partir de certains des modèles dans votre application. Voici un exemple d'utilisation.La
h:panelGrid
est principalement utilisé pour la mise en page et de placer des éléments fins. Voici un exemple d'utilisation.OriginalL'auteur Jose Diaz
La dataTable est un model-driven données composant de sortie. Pour chaque ligne de votre modèle, le composant peut définir l'état de ses enfants pour chaque phase de la JSF le cycle de vie. Ce comportement est bénéfique ou néfaste selon ce que vous essayez d'atteindre.
En revanche, la panelGrid est juste un contrôle de mise en page.
La différence est (très) peu près similaire à la différence entre JTable et Composite.
OriginalL'auteur McDowell
Vous devez utiliser un panelGrid lorsque vous connaissez le nombre de lignes et de colonnes que vous souhaitez afficher, vous devez définir tous les composants enfant de toi (manuellement, le panelGrid ne sera pas ajouter toutes les lignes/colonnes par lui-même) et la panelGrid permet de les classer.
DataGrid sur l'autre main est utilisée lorsque vous avez une structure de données (comme une collection) avec une indéterminé taille, puis il suffit de spécifier les colonnes que vous souhaitez imprimer et le contrôle dataGrid va se répéter sur la collection de la création d'une ligne pour chaque entrée.
OriginalL'auteur Mateusz Dymczyk