Ich versuche Angular DataTables mit der Option server side processing zu verwenden, aber wenn ich versuche, es in ihrem "Angular way example" zu aktivieren, wird nur die erste Anfrage gerendert, die folgenden Anfragen (Paging, Bestellung, Suche) werden gesendet, aber sie werden nie aktualisiert Der Tisch.Wie wird die serverseitige Option in Angular DataTables mit dem Angular Way-Beispiel verwendet?
Antwort
Nach ein wenig graben, fand ich eine nicht verwandte user contributed note, die vorschlägt, dass Sie die Option ajax
mit Ihrer eigenen Funktion überschreiben, um den Server-Seitenaufruf zu behandeln.
Der Trick besteht darin, ein leeres Array an den DataTables-Callback zurückzugeben, damit es seinen Renderer nicht zum Rendern der Tabelle verwendet. Das wird von Angular erledigt. Es ist auch eine gute Idee, die Spaltennamen auf dem Server anzugeben.
Da DataTables denkt, dass keine Zeilen angezeigt werden, wird die Meldung "Keine Daten verfügbar" angezeigt. Am einfachsten ist es, es mit CSS zu verstecken. Sie können es auf Ihre global styles.css hinzufügen:
.dataTables_empty {
display: none;
}
es dann zeigen sich in der Vorlage:
<tr *ngIf="persons?.length == 0">
<td colspan="3" class="no-data-available">No data!</td>
</tr>
hier ist also der vollständige Code. Getestet mit Angular 5.0.0, datatables.net 1.10.16 und 5.0.0 Winkel-Datentabellen:
Winkel-Wege-server-side.component.ts
import { Component, OnInit } from '@angular/core';
import { HttpClient, HttpResponse } from '@angular/common/http';
import { DataTablesResponse } from '../datatables/datatables-response';
import { Person } from './person';
@Component({
selector: 'app-angular-way-server-side',
templateUrl: 'angular-way-server-side.component.html',
styleUrls: ['angular-way-server-side.component.css'],
})
export class AngularWayServerSideComponent implements OnInit {
dtOptions: DataTables.Settings = {};
persons: Person[];
constructor(private http: HttpClient) { }
ngOnInit(): void {
var that = this;
this.dtOptions = {
pagingType: 'full_numbers',
serverSide: true,
processing: true,
ajax: (dataTablesParameters: any, callback) => {
that.http
.post<DataTablesResponse>('/api/Persons', dataTablesParameters, {})
.subscribe(resp => {
that.persons = resp.data;
callback({
recordsTotal: resp.recordsTotal,
recordsFiltered: resp.recordsFiltered,
data: [],
});
});
},
columns: [
{ data: "id" },
{ data: "firstName" },
{ data: "lastName" },
],
};
}
}
Winkel-Weg- Server-side.component.html
<table datatable [dtOptions]="dtOptions" class="row-border hover">
<thead>
<tr>
<th>ID</th>
<th>First name</th>
<th>Last name</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let person of persons">
<td>{{ person.id }}</td>
<td>{{ person.firstName }}</td>
<td>{{ person.lastName }}</td>
</tr>
<tr *ngIf="persons?.length == 0">
<td colspan="3" class="no-data-available">No data!</td>
</tr>
</tbody>
</table>
Winkel-Wege-server-side.component.css
.no-data-available {
text-align: center;
}
person.ts
export class Person {
id: number;
firstName: string;
lastName: string;
}
Datentabellen-response.ts
export class DataTablesResponse {
data: any[];
draw: number;
recordsFiltered: number;
recordsTotal: number;
}
src/styles.css
.dataTables_empty {
display: none;
}
- 1. Angular datatables Spalte ausblenden
- 2. Angular-DataTables benutzerdefinierten Filter
- 3. Angular-Datatables + Angular-Xeditable: Editierbare Zeile abgebrochen
- 4. Angular dataTables mit Ajax Source
- 5. datatables + Regex + serverseitige Verarbeitung
- 6. Serverseitige Verarbeitung mit Datatables v1.10.0
- 7. Wie wird die DateRangePicker-Direktive in Angular 2 verwendet?
- 8. Angular-datatables Bootstrap-Suchleiste CSS
- 9. Wie @ angular/flex-layout richtig verwendet wird?
- 10. Wie wird die Direktive in Angular 1.5 verwendet?
- 11. Wie wird die grundlegende semantic.min.css in Angular verwendet?
- 12. Wie Sie die serverseitige Suche mit jQuery dataTables aktivieren?
- 13. JQuery DataTables serverseitige Verarbeitung, die nicht rendert
- 14. Angular datatables geschachtelte Zeilen Rendering
- 15. Die Option ‚--poll‘ mit dem Build-Befehl wird nicht
- 16. Angular 2, wählen Sie die Option Ausgabe
- 17. Serverseitige Validierung für angular 2 Formen
- 18. Wie setzt man Angular-Datatables Responsive Priority?
- 19. Wie wird die Standardoption in Auswahl mit Angular festgelegt?
- 20. Wie wird Angular cli + Angular universal eingerichtet?
- 21. Angular Standard gewählte Option
- 22. Include-Vorlage in angular-Datatables nicht rendern
- 23. Verwendet Angular CLI SystemJS?
- 24. angular Wählen Sie die Option ng-repeat
- 25. Datatables - Parameter an serverseitige Verarbeitung senden
- 26. Wie wird eine HATEOAS REST API in Angular verwendet?
- 27. Wie wird $ in Angular gelöst?
- 28. JQuery Datatables Serverseitige Verarbeitung Bug
- 29. Kann die Abrufanforderung mit Angular verwendet werden?
- 30. Wie wird Fast-Json-Patch in Angular 2-Anwendungen verwendet?
Geck, yo Du musst diese Antwort akzeptieren. Es ist eine sehr gute Antwort. – Stack
Hey, danke! Ich muss zwei Tage warten, um meine eigene Antwort zu akzeptieren. –
Könnten Sie diesen Link https://stackoverflow.com/questions/47568013/get-more-than-1000-row-in-the-data-table-in-angular-js-from-mongodb überprüfen –