Actualmente, estoy mostrando los metadatos de imágenes con éxito desde mi base de datos usando una tabla de datos con capacidades de clasificación/filtrado. Debajo de mi tabla de datos estoy mostrando mis imágenes con éxito utilizando un flujo de imagen de terceros (http://www.jacksasylum.eu/ContentFlow/). Estoy usando la misma lista para mostrar ambos en este punto. Después de filtrar mis datos dentro de mi datatable, necesito actualizar dinámicamente mi lista de imágenes en mi flujo de cobertura con los resultados de la tabla de datos filtrada.Primefaces Guardar/Pasar Lista de resultados de DataTable filtrada
¿Cuál es la mejor manera de hacerlo con PrimeFaces? ¿Alguien podría indicarme un ejemplo de trabajo?
Aquí está mi código:
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;
}
Gracias por la info! ¡Implementé esto y puedo mostrar los resultados filtrados en un OutputPanel! Actualmente, he estado tratando de mostrar imágenes de registros seleccionados dentro de una tabla de datos. Parece que tengo un problema con la implementación de ContentFlow fuera del alcance de esta pregunta. Puede verlo aquí: http://stackoverflow.com/questions/11660247/display-db-images-using-contentflow-coverflow-illegalstateexception-error Gracias de nuevo por su ayuda !! – user1530469
Es bueno escuchar que su progreso. Si mi respuesta responde a la pregunta que me hizo, no dude en marcar la respuesta como aceptada, son todas las gracias que necesito ;-) Bienvenido a stackoverflow por cierto. – siebz0r