2015-03-18 2 views
0

У меня есть текущий код, чтобы получить список пункта с помощью PickList в Primefaces:Использование р: PickList к большому списку товаров

<p:pickList showSourceFilter="true" showTargetFilter="true" filterMatchMode="contains" label="#{msg.dataview_label_net}" id="pickListNet" converter="firstItemConverter" value="#{dataViewBean.net}" var="node" itemLabel="#{item.name}" itemValue="#{item}" /> 

Но, у меня есть проблемы с производительностью в Google Chrome, чтобы показать этот список.

Мое бэкэнд быстро, но, чтобы показать весь элемент в Primefaces, есть много времени для рендеринга. Можно ли использовать какую-то разбивку на страницы в подборщике или какую-то ленивую нагрузку?

У меня около 3000 наименований в моем списке. Я попытался исправить положение js, чтобы улучшить его здесь: https://code.google.com/p/primefaces/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Priority%20TargetVersion%20Reporter%20Owner%20Summary&groupby=&sort=&id=7655

но это не работает для меня.

ответ

1

Лучшим решением этой проблемы является попытка использовать другой компонент, такой как DataTable.

Я использовал DataTable с множественным флажком и ленивым свитком, чтобы показать только неполный список. Мое время загрузки сокращается с 1 минуты до 15 секунд.

1

Нет, извините, это не поддерживается в версиях PrimeFaces в это время написания (5.1/5.2-SNAPSHOT). Как можно было бы узнать, посмотрев документацию PrimeFaces

+0

Возможно, я действительно должен использовать что-то вроде Datatable, а не. –

+1

Да, это вариант, который также упоминался на форуме PrimeFaces несколько лет назад. Но другие варианты, такие как переосмысление, если вам действительно нужны списки looooooong в списке выбора, должны быть открыты. Думает, что фильтрация upfront (разделение списка по группам) может быть более удобным – Kukeltje

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