2016-06-30 3 views
0

Я беру данные из базы данных с Hibernate й я показать данные в DataTable в моей программе теперь я должен показать данные с отложенной загрузкой Primaface DataTableИспользование PrimaFace Lazyloading В DataTable

Я не знаю, как я должен изменить свой код Я ищу интернет, я вообще не нахожусь. (я хочу Список testList с отложенной загрузки в DataTable показ)

спасибо

XHTML файла:

<p:dataTable var="test" value="#{testMB.testList}" id="testTable"width="100%" liveResize="true"> 

ManagedBean файл

private List<TestDTO> testList = new ArrayList<TestDTO>(); 
public List<TestDTO> getTestList() { 
    return logList; 
} 
public void setTestList(final List<TestDTO> pTestList) { 
    testist = pTestList; 
} 

TestDTO класс

общественного класса TestDTO реализует Serializable {

private static final long serialVersionUID = XXXXXXXXXXXXXXL; 

private String XXXXXXXX; 
private Date XXXXXXXX; 
private String XXXXXXXX; 
private Long XXXXXXXX; 
private Long XXXXXXXX; 
private Long XXXXXXXX; 
private String XXXXXXXX; 
private String XXXXXXXX; 
........ 

ответ

0

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

<p:dataTable var="test" value="#{testMB.testList}" id="testTable"width="100%" liveResize="true" lazy="true"> 

Вы можете рассмотреть возможность включения указателя, а также служит для ленивой загрузки.

Дополнительная информация: http://www.primefaces.org/showcase/ui/data/datatable/lazy.xhtml

Пример класса LazyDataModel.

class LazyTestDataModel extends LazyDataModel<TestDTO> implements Serializable { 
    private static final long serialVersionUID = 1L; 

    @Override 
    public List<TestDTO> load(int first, int pageSize, String sortField, SortOrder sortOrder, 
      Map<String, Object> filters) { 
     try { 

      Map<String, Object> params = PrimefacesBeanUtils.populatePaginationMap(first, pageSize, sortField, sortOrder, filters); 

      setRowCount(testService.getListCount(params)); 

      if (getRowCount() > 0) { 
       return testService.getList(params); 
      } 

     } catch (Throwable t) { 
      errorResult(t); 
     } 

     return null; 
    } 
} 
+0

Спасибо, за ответ – Oscar

+0

Спасибо, за ответ .И читать http://www.primefaces.org/showcase/ui/data/datatable/lazy.xhtml but.I не understand.can вас скажите, пожалуйста, какой muss я пишу в LazyDataModel class.how может использовать testList в ArrayList, и как можно использовать и подключать ArrayList в/с datatable.Thank you.I надеюсь, что вы поможете mir – Oscar

+0

Цель состоит в том, чтобы класс LazyDataModel был, когда вы хотите иметь LazyLoading на вашем datatable. На самом деле это довольно просто реализовать. и я добавил пример кода класса LazyDataModel. –

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