2012-04-21 2 views
1
.

. Я использую datalist с разбивкой по страницам Ajax, и первая страница загружается отлично, показывая 5 результатов. Он знает, что у меня есть 3 страницы результатов, но когда я перехожу на вторую/третью страницы, я получаю пустой список.. Графические диаграммы.

Моя модель расширяет LazyDataModel, и в первый раз, когда загружается моя страница, я могу установить точку останова на метод load(), и я вижу, что она запрашивает результаты 1-5, что здорово. Но нажатие на «стр. 2» не приводит к другому вызову метода загрузки (хотя это приводит к примерно 3 вызовам в мое поле lazyDataModel (только не метод загрузки внутри него).

Новое в этом и несмотря на то, что я много читаю и разбираюсь в разных вещах, я не могу понять, как это должно работать. Пример витрины для меня не кажется мне «полным».

Вот самые важные биты моего кода (я думаю,) к сожалению о форматировании:.

@PostConstruct 
public void LoadData() { 
    lazyModel = new LazyDataModel<MessageboardThread>() { 

    @Override 
    public List<MessageboardThread> load(int first, int pageSize, String sortField, SortOrder so, Map<String, String> map) { 
    List<MessageboardThread> result = new ArrayList<MessageboardThread>(); 

    try { 
     result = mbDao.findAll(pageSize, first); 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 
    return result; 
    } 
}; 
getLazyModel().setRowCount(mbDao.count()); 
getLazyModel().setPageSize(pageSize); 
}  

Этот способ получить выполняется каждый раз, когда я нажимаю на следующий/предыдущая страница /** * @вторлайн lazyModel */ public LazyDataModel getLazyModel() { return lazyModel; }

И это мой файл XHTML

  <p:dataList value="#{messageboardBean.lazyModel}" var="thread" id="threads" 
       paginator="true" rows="5" effectSpeed="fast" 
       paginatorTemplate="{PreviousPageLink} {CurrentPageReport} {NextPageLink} {RowsPerPageDropdown}" 
       rowsPerPageTemplate="5,10,15" type="none" 
       paginatorPosition="bottom"> 

        <f:facet name="header"> 
         Conversations 
        </f:facet> 

        <p:column> 
         <h:outputText value="#{thread.title}" style="margin-left:10px" /> 
         <br /> 
        </p:column> 
      </p:dataList> 

Я озадачен так очень благодарен за любую помощь

PS Я поставил там @PostContruct аннотацию, потому что это казалось хорошим местом для сделайте настройку, но это может быть неправильно, я не видел ее ни на одном другом примере, но тогда я не мог получить никаких других примеров для работы.

ответ

1

Решено. Я забыл обернуть атрибут dataList в тег h: form. Теперь он отлично работает.

+0

Отметьте ваше решение как принятое, поэтому он менее запутан во время просмотра вопросов. – Fallup

+0

Я буду, когда это позволит мне – Richard

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