2016-11-11 7 views
0

J'ai un p: menuButton dans une colonne p: dans un tableau p: dataTable.Comment créer un p: menuButton dynamique à l'intérieur d'un dataTable jsf?

Jusqu'à présent, tout fonctionne bien.

Maintenant, je veux rendre le menuButton dynamique. Cependant, c: foreach est évalué avant le rendu de la table et les primitives n'aime pas utiliser ui: repeat à l'intérieur de p: menuButton.

Comment créer un nombre de p: menuitem dynamiquement en fonction d'une collection sur l'élément de ligne que je suis en boucle, c'est-à-dire que dois-je faire au lieu de?: SomeKindOfLoop dans l'exemple ci-dessous?

<p:dataTable value='#{something.collection}' var='item'> 
... 
    <p:column> 
    ... 
     <p:menuButton value="Actions"> 
      <p:menuitem value="View ..." 
       ...> 
       <f:param name="something" value="#{item.id}"/> 
      </p:menuitem> 
      <?:someKindOfLoop x="#{item.subCollection}" y="var"> 
       <p:menuitem value="View sub list " 
        ...> 
        <f:param name="#{var.name}" value="#{var.id}"/> 
       </p:menuitem> 
      </?:someKindOfLoop> 

     </p:menuButton> 
    ... 
    </p:column> 
</p:dataTable> 

recherche sur Google donne un certain nombre de cas similaires, mais je ne l'ai pas encore trouvé qui n'a pas été soit sur les colonnes création dynamique (comme ceci: Why can <c:forEach> or <ui:repeat> not access <p:dataTable var>?) ou qui ne traite pas de primefaces.

+1

Seulement ' Holger

Répondre

2

Le PrimeFaces p:menuButton, comme de nombreux autres composants, y compris la plupart des composants de menu, prend en charge l'attribut de modèle. Ceci est mentionné sur page 329 in the PF6 documentation. La section "Menus dynamiques" de ce composant fait référence à la section des menus dynamiques "communs" sur page 323. Là, vous pouvez lire comment faire cela.

Et pour éviter cette réponse comme un « seul lien » (vers des sites externes, voici le genre de double de cette question: Primefaces : how to create <p:menubar> dynamically in primefaces 4?

+0

Je pense que c'est ce que nous cherchions. chaque rangée dans une table je suppose que nous essayerons quelque chose le long des lignes de . Je vais essayer ça maintenant. Merci beaucoup! –