java - modal - richfaces showcase
Server-side DataTable Ordenando en RichFaces (5)
Tengo una tabla de datos con un número variable de columnas y un scroller de datos. ¿Cómo puedo habilitar la clasificación del lado del servidor? Prefiero que el usuario haga clic en el encabezado de la columna.
<rich:datascroller for="instanceList" actionListener="#{pageDataModel.pageChange}"/>
<rich:dataTable id="instanceList" rows="10" value="#{pageDataModel}"
var="fieldValues" rowKeyVar="rowKey">
<rich:columns value="#{pageDataModel.columnNames}" var="column" index="idx">
<f:facet name="header">
<h:outputText value="#{column}"/>
</f:facet>
<h:outputText value="#{classFieldValues[idx]}" />
</rich:columns>
</rich:dataTable>
Ya tengo un método en el bean para ejecutar el género.
public void sort(int column)
Terminé haciéndolo manualmente. Agregué una etiqueta de soporte a la etiqueta de texto del encabezado, como tal.
<h:outputText value="#{column}">
<a4j:support event="onclick" action="#{pageDataModel.sort(idx)}"
eventsQueue="instancesQueue"
reRender="instanceList,instanceListScroller"/>
</h:outputText>
Para obtener las flechas ascendentes / descendentes, agregué una clase css.
<h:outputText value="#{column}" styleClass="#{pageDataModel.getOrderClass(idx)}" >
<a4j:support event="onclick" action="#{pageDataModel.sort(idx)}"
eventsQueue="instancesQueue"
reRender="instanceList,instanceListScroller"/>
</h:outputText>
Eche un vistazo a la propiedad "ordenar por" de "rich: columns", tal vez eso es lo que está buscando. Referencia de Richfaces
¿No puedes usar Collection.sort () cuando recuperas la Lista?
Aquí hay una solución bastante elegante para esta solución:
http://livedemo.exadel.com/richfaces-demo/richfaces/sortingFeature.jsf?tab=ex-usage
Esta demostración evita usar la etiqueta.
Su modelo de datos necesita implementar una interfaz "modificable".
La tabla de datos llamará a su método modify()
para hacer la clasificación y el filtrado en el servidor.