report_traspasonotasexam/paging.js

92 lines
3.1 KiB
JavaScript

function Pager(tableName, itemsPerPage) {
this.tableName = tableName;
this.itemsPerPage = itemsPerPage;
this.currentPage = 1;
this.pages = 0;
this.inited = false;
this.showRecords = function(from, to) {
var rows = document.getElementById(tableName).rows;
$('.emptyrow').remove();
// alert('filas>>' + rows);
// i starts from 1 to skip table header row
for (var i = 1; i < rows.length; i++) {
// alert(rows[i].innerHTML);
if (i < from || i > to)
rows[i].style.display = 'none';
else
rows[i].style.display = '';
}
}
this.showPage = function(pageNumber) {
$('.emptyrow').remove();
if(pageNumber == 1){
$("#prev").attr("style","display:none;");
}else{
var maxPageNumber = $("#maxfield").html();
if(pageNumber == maxPageNumber-1){
$("#next").attr("style","display:none;");
}else{
$("#prev").removeAttr("style");
}
}
$("#number"+pageNumber).html(pageNumber);
if (! this.inited) {
alert("Error 1 !");
return;
}
var oldPageAnchor = document.getElementById('pg'+this.currentPage);
oldPageAnchor.className = 'pg-normal';
this.currentPage = pageNumber;
var newPageAnchor = document.getElementById('pg'+this.currentPage);
newPageAnchor.className = 'pg-selected';
var from = (pageNumber - 1) * itemsPerPage + 1;
var to = from + itemsPerPage - 1;
this.showRecords(from, to);
}
this.prev = function(numAct) {
if (numAct > 1)
this.showPage(numAct - 1);
return numAct - 1;
}
this.next = function(numAct) {
if (numAct < this.pages) {
this.showPage(numAct + 1);
return numAct + 1;
}
}
this.init = function() {
$('.emptyrow').remove();
var rows = document.getElementById(tableName).rows;
var records = (rows.length - 1);
this.pages = Math.ceil(records / itemsPerPage);
this.inited = true;
}
this.showPageNav = function(pagerName, positionId) {
if (! this.inited) {
alert("Error 2 !");
return;
}
var element = document.getElementById(positionId);
var pagerHtml = 'P&aacute;gina: <span id="prev" onclick="prev();" class="pg-normal" style="size:12px;" onmouseover="this.style.cursor=\'pointer\'"> (<a href="#">Anterior</a>) </span> | ';
for (var page = 1; page <= this.pages; page++)
pagerHtml += '<span id="pg' + page + '" class="pg-normal" onclick="mostrarPagina(' + page + ')" style="size:12px;" onmouseover="this.style.cursor=\'pointer\'"><span id="number'+page+'"><a href="#">' + page + '</a></span></span> | ';
pagerHtml += '<span id="next" onclick="next();" class="pg-normal" style="size:12px;" onmouseover="this.style.cursor=\'pointer\'"> (<a href="#">Siguiente</a>)</span><div id="maxfield" style="display:none;">'+page+'</div>';
element.innerHTML = pagerHtml;
}
}