2010-05-22 2 views
6

Я работал над несколькими проектами с большим количеством таблиц данных. Таблицы имели сортировку, фильтрацию и пейджинг, конечно, на стороне сервера и с помощью db (все базы данных реализовали сортировку, фильтрацию-место и ограничение возвращаемых результатов).jsf datatable с ленивой загрузкой, фильтрацией и сортировкой

При работе на реальном приложении есть тысячи даже миллионов строк.

Но я видел несколько составных компонентов JSF.
Они реализуют разбивку на страницы, сортировку и фильтрацию на стороне клиента! По моему мнению, это очень глупо. Эта технология называется предприятием, и они сортируют данные на стороне клиента с помощью java-скрипта!

Я не видел ни одной хорошей сетки данных JSF, которая имеет встроенные функции для сортировки, фильтрации и ленивой загрузки на стороне сервера.

Почему? Я смотрю в неправильном направлении или на самом деле там нет поддержки сборки для этого. В последнее время я тестирую простые графики и ленивую загрузку данных. Это действительно хорошо работает, но в таблице я могу только ленивый груз. Если вы добавите сортировку и фильтр, начнутся проблемы.

Заключение: Есть ли какой-либо компонент данных JSF, который может выполнять ленивую разбивку на страницы, а также фильтровать и сортировать на стороне сервера? Если мне нужно реализовать собственное решение благодаря командам, которые сделали сортировку и фильтрацию на стороне клиента, они бесполезны.

+0

ли вы когда-нибудь найти хороший способ построения сортируемых таблицы с отложенной загрузки? –

+0

@ darpet: вы нашли для этого хорошее решение? – user590586

+1

Основные интерфейсы Datatable с включенной ленивой загрузкой - это ответ сегодня :-) –

ответ

5

Нет, нет. Поскольку библиотека компонентов не может знать, каким будет механизм сохранения.

Однако многие таблицы данных предлагают варианты для представления этого. Например, datatable richfaces имеет так называемый DataModel. Например, что мы сделали:

public class CustomDataProvider implements DataProvider<ClassToShow>, 
     Sortable2, Filterable { .. } 


public class PagingExtendedTableDataModel<T> extends ExtendedDataModel implements 
     Serializable, Modifiable { 

    private DataProvider dataProvider; 
    private Object rowKey; 
    private List wrappedKeys; 
    private Map wrappedData; 
    private Integer rowCount; 
    private Integer rowIndex; 
    private List<FilterField> filterFields; 
    private List<SortField2> sortFields; 

    public PagingExtendedTableDataModel(DataProvider<T> dataProvider) { .. } 

} 

Вы должны реализовать все методы, таким образом, что подходит вашей настойчивости механизм

Смежные вопросы