2017-12-26 15 views
1

Ich versuche Struktur zu verwenden jquery datatables mit Backend auf Frühling HATEOAS, die zurückgibt HAL Dokument mit:JQuery Tables Menge von Seiten

{ 
    "_embedded": {...}, 
    "_links": {...}, 
    "page": { 
    "size": 10, 
    "totalElements": 15, 
    "totalPages": 2, 
    "number": 0 
    } 
} 

Derzeit meine Datentabelle Einstellungen wie folgt aussieht:

const table = TABLE_ELEMENT.DataTable({ 
    processing: true, 
    ordering: false, 
    serverSide: true, 
    paging: true, 
    pagingType: 'numbers', 
    pageLength: 10, 
    lengthChange: false, 
    recordsTotal: 15, 

    searching: false, 
    ajax: { 
     type: 'GET', 
     url: '/api/employees', 
     dataSrc: data => data._embedded.employees, 
    }, 
    columns: [ 
     {data: 'name'}, 
     {data: 'email'}, 
     {data: 'phone'}, 
     {data: 'birthDay'} 
    ] 
    }); 

Aber die Problem ist, dass ich die Anzahl der Seiten, die ich habe, nicht richtig einrichten kann. Wenn ich serverSide: true verwende, hat meine Tabelle unendlich viele Seiten, wenn ich stattdessen serverSide: false verwende, hat meine Tabelle nur 1 Seite. Wie löst man das?

zwischen den Seiten wechseln Ich verwende Code:

TABLE_ELEMENT.on('page.dt',() => { 
    table.ajax.url('/api/employees?page=' + table.page.info().page); 
}); 

Antwort

0

dieses Problem zu lösen Ich ersetzte Eigenschaft dataSrc, mit:

dataFilter: (data) => { 
    let json = JSON.parse(data); 
    json.recordsTotal = json.page.totalElements; 
    json.recordsFiltered = json.page.totalElements; 
    json.pageLength = json.page.size; 
    json.data = json._embedded.employees; 
    return JSON.stringify(json); 
} 

auch Eigenschaften

pageLength: 10, 
recordsTotal: 15 

entfernt werden kann
Verwandte Themen