2
votes

Comment implémenter la pagination côté serveur dans Ng2-smart-table?

J'ai créé une nouvelle source de données personnalisée qui étend la source de données locale. Pour que je puisse obtenir tous les enregistrements de la base de données. Mais ce n'est pas le cas, car j'ai mille enregistrements dans ma base de données. La mise en œuvre ci-dessus n'est donc pas efficace.

Maintenant, j'ai essayé d'implémenter la pagination côté serveur. J'ai parcouru les problèmes de GitHub ng2-smart-table ( https: // github .com / akveo / ng2-smart-table / issues / 30 ). Mais je n'ai pas pu trouver la bonne solution. Alors pourriez-vous s'il vous plaît nous aider.

Merci d'avance.


3 commentaires

quelle base de données utilisez-vous? qu'avez-vous déjà essayé? n'importe quel code?


Voici ma solution stackoverflow.com/questions/44669968/...


n'importe qui ici, veuillez m'aider avec cette question.J'ai aussi un scénario dans lequel je dois changer mon composant en pagination côté serveur, incapable de trouver la solution, merci d'avance


3 Réponses :


0
votes

votre base de données supportera probablement quelque chose comme la fonctionnalité de saut / limite. sur cette base, le code client peut adresser des requêtes à la base de données afin de renvoyer des résultats partiels.


1 commentaires

J'utilise la base de données mysql. donc je peux faire sauter / limiter la fonctionnalité. Mais mon problème est d'implémenter la même fonctionnalité dans le ng2-smart-table. Parce que j'ai écrit mon propre DataSource qui étend le LocalDataSource pour cela comme je l'ai mentionné ci-dessus lien github. Mais je ne pouvais pas comprendre comment il a fait la pagination.



1
votes

Ceci est ma solution pour la pagination côté serveur

ng2-smart-table avec pagination depuis le back-end (printemps)

J'ai un filtre qui contient les informations startIndex et recordCount. Vous devez vous assurer de ne renvoyer que la quantité de données demandée à partir de votre API / DB / etc.


0 commentaires

0
votes

C'était ma solution ..

  1. Renvoyez vos données de la base de données ou de l'API comme ceci.
settings = {
  pager: {
    display: true,
    perPage: 5,
  }
}
  1. Récupérez les données de cette manière tout en spécifiant les noms de données et de totalkey exactement comme ils ont été renvoyés à la première étape.
return new ServerDataSource(this.http, {
  endPoint: endpointUrl,
  dataKey: 'data',
  totalKey: 'total',
});
  1. Dans les paramètres de votre table, affichez le pagineur et définissez perPage
data: [{,…}, {,…}, {,…}, {,…}, {,…}, {,…}, {,…}, {,…}, {,…}, {,…}] total: 10


0 commentaires