[英]Server-side DataTable Sorting in RichFaces
我有一个数据表,其中包含可变数量的列和数据滚动条。 如何启用服务器端排序? 我更喜欢用户单击列标题来触发它。
<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>
我已经在bean上有一个方法来执行排序。
public void sort(int column)
我最终手动完成了。 我在标题文本标记中添加了一个支持标记,就像这样。
<h:outputText value="#{column}">
<a4j:support event="onclick" action="#{pageDataModel.sort(idx)}"
eventsQueue="instancesQueue"
reRender="instanceList,instanceListScroller"/>
</h:outputText>
为了获得上升/下降箭头,我添加了一个css类。
<h:outputText value="#{column}" styleClass="#{pageDataModel.getOrderClass(idx)}" >
<a4j:support event="onclick" action="#{pageDataModel.sort(idx)}"
eventsQueue="instancesQueue"
reRender="instanceList,instanceListScroller"/>
</h:outputText>
您的datamodel需要实现“可修改”接口。
数据表将调用它的modify()
方法来进行服务器端排序和过滤。
这里有一个相当优雅的解决方案:
http://livedemo.exadel.com/richfaces-demo/richfaces/sortingFeature.jsf?tab=ex-usage
此演示避免使用标记。
看看“rich:columns”的“sortBy”属性,也许这就是你要找的东西。 Richfaces参考
你不能在检索List时使用Collection.sort()吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.