1

我正在研究战斧,我只想知道我是否使用<t:columns>然后如何在单击该特定列的标题时对数据表进行排序来生成数据表,就像我们<t:commandSortHeader>在普通<t:column>属性中使用的一样。请帮助。

4

2 回答 2

2

使用 at:datatable 你并不需要 t:commandSortHeader,除非你想自定义它用来排序的属性。

以下是你需要做的:

<h:form>
<t:dataTable
    id="data"
    value="#{BACKINGBEAN.DATA}"
    var="item"
    sortColumn="#{BACKINGBEAN.sortColumn}"
            sortAscending="#{BACKINGBEAN.sortAscending}">

...

<t:column defaultSorted="true" sortable="true">
    <f:facet name="header">
             <h:outputText value="header text"/>
    </f:facet>
    <h:outputText value="#{item.property}" />
</t:column>

...

</t:dataTable>
</h:form>

然后在你的支持bean中:

private String sortColumn;
private boolean sortAscending;

使用默认的 getter/setter/lombok。它们只是为了让标签可以设置数据。

这是一个很好的参考: http ://wiki.apache.org/myfaces/Working_with_auto_sortable_tables

但是它错过了关于支持 bean 属性的讨论,而且<h:form>即使你没有任何表单元素,它也需要被包装在 a 中。

于 2012-11-28T02:50:44.630 回答
1

一种可能性是使用 jQuery 插件排序。看这里

另一种是将t:dataTablet:commandSortHeader一起使用,如您所描述的

<t:dataTable  
id="data"  
value="#{BACKINGBEAN.DATA}"  
var="item"  
...  
sortable="true"
rows="10">
于 2010-03-26T10:43:52.353 回答