Attualmente, sto visualizzando correttamente i metadati delle immagini dal mio database utilizzando un datatable con capacità di ordinamento/filtraggio. Sotto il mio datatable sto visualizzando correttamente le mie immagini usando un coverflow di immagini di terze parti (http://www.jacksasylum.eu/ContentFlow/). Sto usando la stessa lista per visualizzare entrambi a questo punto. Dopo aver filtrato i miei dati all'interno del mio datatable ho bisogno di aggiornare dinamicamente la mia lista di immagini nel mio coverflow con i risultati databili filtrati.Primefaces Salva/Passa Elenco risultati filtrati DataTable
Qual è il modo migliore per farlo utilizzando PrimeFaces? Qualcuno potrebbe indicarmi un esempio funzionante?
Ecco il mio codice:
screenshotData.xhtml
<h:form>
<p:dataTable var="scrshot" value="#{screenshots}" paginator="true" rows="8"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15" widgetVar="dataTable" draggableColumns="true"
emptyMessage="No screenshot data found with given criteria">
<f:facet name="header">
<p:outputPanel>
<h:outputText value="Search all fields:"/>
<p:inputText id="globalFilter" onkeyup="dataTable.filter()" style="width:150px" />
</p:outputPanel>
</f:facet>
<p:column headerText="Time" sortBy="#{scrshot.time}" filterBy="#{scrshot.time}" filterMatchMode="startsWith">
<h:outputText value="#{scrshot.time}" />
</p:column>
<p:column headerText="Id" sortBy="#{scrshot.id}" filterBy="#{scrshot.id}" filterMatchMode="startsWith">
<h:outputText value="#{scrshot.id}" />
</p:column>
<p:column headerText="User" sortBy="#{scrshot.user}" filterBy="#{scrshot.user}" filterMatchMode="startsWith">
<h:outputText value="#{scrshot.user}" />
</p:column>
</p:dataTable>
</h:form>
<br/>
<h:form>
<p:outputPanel id="imgBlock" layout="block">
<div class="ContentFlow" style="width: 1400px; height: 500px" align="center">
<div class="loadIndicator"><div class="indicator"></div></div>
<div class="flow">
<a4j:repeat var="img" value="#{screenshots}" rendered="true">
<div class="item">
<img class="content" id="images" src="ImgServlet?id=#{img.id}" title="#{img.time}" draggable="true"/>
<div class="label">#{img.id}</div>
</div>
</a4j:repeat>
</div>
<div class="globalCaption"></div>
<div class="scrollbar"><div class="slider"><div class="position"></div></div></div>
</div>
</p:outputPanel>
</h:form>
...............
Screenshot.java
@Entity
@XmlRootElement
@Table(name="imgTable", uniqueConstraints = @UniqueConstraint(columnNames = "id"))
public class Screenshot implements Serializable, PhotoInterface {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private Long id;
private String user;
private Timestamp time;
-------- Getters/Setters ---------
ScreenshotListProducer.java
@RequestScoped
public class ScreenshotListProducer {
@Inject
private EntityManager em;
private List<Screenshot> screenshots;
@Produces
@Named
public List<Screenshot> getScreenshots() {
return screenshots;
}
Grazie per le informazioni! Ho implementato questo e posso visualizzare i risultati filtrati in un outputPanel! Attualmente, ho cercato di visualizzare le immagini dei record selezionati all'interno di un datatable. Sembra che ci sia un problema con l'implementazione di ContentFlow al di fuori dello scopo di questa domanda. Puoi guardare quello qui: http://stackoverflow.com/questions/11660247/display-db-images-using-contentflow-coverflow-illegalstateexception-error Grazie ancora per il tuo aiuto !! – user1530469
È bello sapere che stai facendo progressi. Se la mia risposta risponde alla domanda che hai posto, sentiti libero di contrassegnare la risposta come accettata, questo è tutto il ringraziamento di cui ho bisogno ;-) Benvenuto nello stackoverflow tra l'altro. – siebz0r