Wie zum generieren von Zeilen von PanelGrid dynamisch? (JSF, Primefaces)
Ich versuche zu schaffen, ein PanelGrid mit 2 Spalten und laden von Daten aus einer Liste . Das Problem ist, dass es nicht neue Zeilen erstellen. Es ist einfach die gesamte Liste in der ersten Reihe.
Es ist keine Kommunikation mit der Datenbank. Es ist nur ein Liste, die ich brauche angezeigt, mit einer Zeile für jeden Wert.
Dies ist, wie mein PanelGrid aussieht:
<p:panelGrid style="border:10px;">
<p:row>
<p:column style="font-size:15px;font-weight:bold;">Column1</p:column>
<p:column style="font-size:15px;font-weight:bold;">Column2</p:column>
</p:row>
<p:row>
<p:column style="width:35%">
<h:outputText value="#{myService.columnOne}" />
</p:column>
<p:column style="width:35%">
<h:outputText value="#{myService.columnTwo}" />
</p:column>
</p:row>
</p:panelGrid>
- und das ist meine Liste MyService.java:
public List<String> columnOne = new ArrayList<String>();
public List<String> columnTwo = new ArrayList<String>();
ist und ich einfach fügen Sie einige Werte in meine Methoden mit
columnOne.add("String");
...
BEARBEITEN
Ich habe es gelöst, indem Sie meinen Java-Logik, indem ein Schlüssel,Wert-Karte und zeigt Sie in einer datatable.
InformationsquelleAutor Johnny2012 | 2013-03-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du nicht Durchlaufen Ihre Liste mit p:panelGrid
Verwenden Sie einen iterator p:datatable oder p:datagrid
Und #{myService.columnOne} - Ausgabe wird das Objekt columnOne, nicht die Werte drin.
Im datagrid definieren Sie eine Variable zum Durchlaufen der Liste.
Sollten Sie definieren, so etwas wie dieses;
und in bean
Es ist nur ein Beispiel. klar ist der Fragesteller nicht (nicht) verstehen, wie die Arbeit mit der Iteration einer Liste in JSF. So habe ich versucht zu erklären, dass ein Teil.
InformationsquelleAutor roel
So, wie Sie sind, Sie zu schreiben, natürlich wird er nicht machen sondern nur zwei Zeilen, eine für die überschriften und die andere enthält zwei Spalten, die Sie ausgegeben wird
columnOne.toString()
undcolumnTwo.toString()
.Es muss einen Weg, um Sie anzuzeigen nur als
p:panelGrid
. Allerdings, wenn Sie sicher sind, dass beide Listen gleich groß sind, denke ich am besten Weg (optimiert und kein zusätzlicher code erforderlich ist, in Ihre Java-code) ist die Verwendung von zweip:panelGrid
s, die jeweils die Anzeige einer Spalte. Danach spielen Sie mit Ihrem CSS, um Ihnen erscheinen, als eine eindeutige Tabelle.Basierend auf Ihren Kommentar, hier, was ich tun soll in meinem Ansatz:
Spalte zwei ist wie eine Spalte.
Ich nicht
p:panelGrid
zu vermeiden, mitc:forEach
bei der Iteration Datenwenn Sie bereit sind, verwenden Sie meinen Ansatz, dann würde ich mit p:datatable, siehe meine Antwort bearbeitet
Ihre Lösung funktioniert für mich, aber ist es nicht möglich, die beiden Spalten in einer Datatable? Ich habe wirklich zwei Datentabellen für jede Spalte?
OP will eine Feste 2-Spalten-Tabelle angezeigt. Diese Antwort nicht geben.
bitte beachten Sie in Ihrer Antwort, die OP hat zwei Listen, und er will, dass jede Spalte Werte von a list apart. Das ist, warum ich vorgeschlagen, zwei datatables
InformationsquelleAutor Laabidi Raissi