Côté serveur pagination à l'aide de tables de données du plugin
Le serveur est de retour 15 enregistrements par page et le nombre total d'enregistrements sont plus de 2000. J'aimerais afficher les 15 premiers enregistrements et ensuite sur chaque clic sur le bouton "Suivant", afficher le reste de tous les enregistrements, (15 par page).
Pour ce faire, nous faisons un serveur côté de la pagination ou côté client???
Voici ma table et les attributs que je suis en utilisant pour la pagination dans DataTables:
var tableData = self.accountCollection.getData();
var tableColumns = this.accountCollection.getColumns();
var totalRecs = this.accountCollection.length;
//create the UI grid containing the list of items
this.resultsTable = tableEl.dataTable( {
"bServerSide": true,
"sEcho": 3,
"iTotalRecords": totalRecs,
"iTotalDisplayRecords": 15,
"aaData": tableData,
"aoColumns": tableColumns,
"aaSorting": [[1,'asc']],
});
getData: function () {
var returnData = [];
$.each(this.models, function (idx, accountModel) {
returnData.push(accountModel.attributes);
});
return returnData;
},
La returnData
sera de retour moi un Objet qui a des champs je serai le remplissage j'ai une table.
Objet renvoyé (à peu près):
Object
accountName: "No Company"
address1: "1234 asdf"
address2: ""
billingAcctId: null
billingSystem: null
city: "mountain view"
comments: null
country: "USA"
La fonction getData() sera appelée pour renvoyer les données à partir de la base de données à l'aide de:
var tableData = this.accountCollection.getData()
Donc, fondamentalement, tableData aura les champs et les valeurs à afficher dans le tableau. Maintenant j'ai peut-être plus de 1000 enregistrements renvoyés par le serveur. J'ai donc besoin de la pagination.
Celui de violon est ce que j'ai essayé et n'ont pas d'impact sur la paginatin.
Je crois que j'ai la base de la pagination qui vient avec les tables de données, mais maintenant, j'ai besoin d'avoir un serveur de côté, pour obtenir seulement 15 enregistrements à afficher à la fois, et de cliquer sur "next" et "prev" sur le bouton, je devrais être en mesure de faire des appels ajax pour obtenir les enregistrements restants 15 par page.
J'espère que cela vous aide à mieux comprendre. S'il vous plaît laissez-moi savoir si vous avez besoin de plus de détails.
Comment puis-je obtenir pagination à l'aide de tables de données?
Grâce
Vous devez vous connecter pour publier un commentaire.
La Pagination des œuvres total affiché d'enregistrement vous avez besoin pour effectuer la suite de modifications minimales.
"iTotalDisplayRecord" sera le total des enregistrements filtrés
Cela ressemble votre ruelle -> http://datatables.net/examples/data_sources/js_array.html
C'est purement côté client
Bien que, autant que je sache, la seule façon d'obtenir de réels pagination (le rendant plus rapide parce que vous êtes seulement à aller chercher de 15 enregistrements de la base de données à la fois) est en ajax-ing avec votre côté serveur (c'est à dire http://datatables.net/examples/data_sources/server_side.html)
Il ne me semble pas comme vous faites cela. À moins que... l'auto.accountCollection.getData() est un callback ajax, mais en tout cas, lorsque vous instanciez la DataTable vous devez utiliser "ajax: tableData" pas "aaData: tableData".
Vous pouvez être confus au format JSON que datatables est de retour, avec les tables de données de l'API que vous utilisez pour interagir/initialiser avec la datatable.
Désolé, c'est un peu beaucoup lol n'a aucun de sens?