2016-06-30 5 views
0

Ich nehme Daten aus Datenbank mit Hibernate .und i zeigen die Daten in Datentabelle in meinem Programm jetzt muss ich Daten zeigen, mit verzögertes Laden Primaface DatentabelleVerwenden PrimaFace Lazy Loading In Datatable

Ich weiß nicht, wie soll ich den Code ändern .Ich suche Internet, ich finde sowieso nicht. (Ich will Liste Testlist mit verzögertes Laden in Datentabelle angezeigt)

dank

XHTML-Datei:

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

ManagedBean Datei

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

TestDTO Klasse

public class TestDTO implementiert Serializable {

Antwort

0

Sie müssen die LazyDataModel-Klasse für das Lazy Loading implementieren, anstatt die normale ArrayList zu verwenden, und Sie sollten faul bei Ihrer Datentabelle auf true setzen.

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

Sie könnten Paginator einschalten sowie es dient dem Zweck des Lazy Loading.

Mehr Info: http://www.primefaces.org/showcase/ui/data/datatable/lazy.xhtml

Beispiel einer LazyDataModel Klasse.

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

Danke für Ihre Antwort – Oscar

+0

Vielen Dank für Ihre Antwort .i http://www.primefaces.org/showcase/ui/data/datatable/lazy.xhtml lesen but.I hast du nicht understand.can Bitte sagen Sie mir, was muss ich schreiben in LazyDataModel class.how kann testList in ArrayList verwenden und wie ArrayList in/mit datatable verwenden und verbinden.Vielen Dank. Ich hoffe, Sie helfen mir – Oscar

+0

Der Zweck der LazyDataModel Klasse ist, wenn Sie wollen LazyLoading bei Ihrer Datentabelle. Es ist eigentlich ziemlich einfach zu implementieren. und ich habe Beispielcode der LazyDataModel-Klasse hinzugefügt. –