Как отсортировать таблицу данных, если мы используем <t: columns> в JSF? - PullRequest
1 голос
/ 26 марта 2010

Я изучаю томагавк, я просто хочу знать, генерирую ли я таблицу данных, используя <t:columns>, тогда как сортировать таблицу данных по клику на заголовке этого конкретного столбца, как мы используем <t:commandSortHeader> в обычном <t:column> атрибут. Пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 28 ноября 2012

Используя t: 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>

Тогда в вашем бобе поддержки:

private String sortColumn;
private boolean sortAscending;

со стандартными getter / setters / lombok. Они просто для того, чтобы тег мог устанавливать данные.

Это отличная ссылка: http://wiki.apache.org/myfaces/Working_with_auto_sortable_tables

Но он пропускает обсуждение свойств базового компонента, а также того, что его нужно заключить в <h:form>, даже если у вас нет элементов формы.

1 голос
/ 26 марта 2010

Одна из возможностей - использовать сортировку плагинов jQuery. Смотрите здесь

Другой - использовать t: dataTable вместе с t: commandSortHeader , как вы описали

<t:dataTable  
id="data"  
value="#{BACKINGBEAN.DATA}"  
var="item"  
...  
sortable="true"
rows="10">
...