Je voudrais demander votre aide concernant le plugin DataTables.
J'ai fait toute ma configuration en suivant les documents de configuration sur le site Web de datatables, comme ci-dessous:
$("#DataTableNuse").DataTable(
{
ordering: true,
bLengthChange: false,
iDisplayLength: 10,
bFilter: false,
pagingType: "full_numbers",
bInfo: false,
dom: "Bfrtip",
buttons:
[
{ extend: 'pdf', text: 'Exportar PDF', title: 'Nuse' },
{ extend: 'Excel', text: 'Exportar Excel', title: 'Nuse' }
],
language:
{
emptyTable: "<li class='text-danger' align='center'>NUSE não encontrada</li>",
paginate:
{
previous: "<",
next: ">",
first: "|<",
last: ">|"
}
}
});
Aussi essayé les options "complet" ainsi que "full_numbers".
Tout fonctionne bien, mais le problème est que je dois modifier la mise en page pour bien respecter les normes du client.
J'ai besoin d'une nouvelle mise en page comme ci-dessous:
Où:
">" va paginer 10 sur 10
">>" paginera 20 sur 20
"|>" dernière page
Tout le monde peut me donner un coup de main à ce sujet.
Merci d'avance.
Meilleures salutations,
Thiago
Vous devrez peut-être le faire manuellement comme ceci:
https://jsfiddle.net/7ramuk9c/1/
ajoute les boutons << et >> pour la première fois et à chaque fois que le tableau est dessiné:
addExtraButtons();
$('#example').on("draw.dt", function(e) {
addExtraButtons();
})
désactiver si nécessaire:
if (currentPage.page == 0) {
$(".quick_previous").addClass("disabled")
}
ajouter des événements aux boutons << et >>:
function quickPrevious(e) {
var pageToGoTo = (currentPage.page - 2) <= 0 ? 0 : (currentPage.page - 2);
table.page(pageToGoTo).draw(false);
}
Voici une autre solution plutôt compliquée jsFiddle , mais si vous recherchez une solution rapide, le code suivant changera le bouton précédent/suivant en <
et >
pour toutes les données, modifiez simplement le sélecteur pour l'événement draw.dt
, si vous voulez cibler une table spécifique uniquement.
Différents types de données ont différentes façons de rendre, j'ai créé une trois fonctions différentes setCustomPagingSigns
pour certaines d'entre elles:
$(".dataTable").on("draw.dt", function (e) {
setCustomPagingSigns.call($(this));
}).each(function () {
setCustomPagingSigns.call($(this)); // initialize
});
// this should work with standard datatables styling - li.previous/li.next
function setCustomPagingSigns() {
var wrapper = this.parent();
wrapper.find("li.previous > a").text("<");
wrapper.find("li.next > a").text(">");
}
// - a.previous/a.next
function setCustomPagingSigns() {
var wrapper = this.parent();
wrapper.find("a.previous").text("<");
wrapper.find("a.next").text(">");
}
// this one works with complex headers example, bootstrap style
function setCustomPagingSigns() {
var wrap = this.closest(".dataTables_wrapper");
var lastrow= wrap.find("div.row:nth-child(3)");
lastrow.find("li.previous>a").text("<");
lastrow.find("li.next>a").text(">");
}