En fin la partede sortearla funciona de perlas muy bien, pero en cuanto a paginacion no me sale, he leido y releido el codigo y no le encuentro la falla, claro tampoco es que yo sepa un chorro de JQuery o de JavaScript, en fin lo adpate a mi paginita y corrio como dije bien en la partede Sort pero naranjas en la parte de paginado,
Cuando lo corro sobre FF 3.0 no me da error pero el paginado no funciona me salen todos los registros de mi busqueda , eso si los numeritos de la cantidad de paginas que deberian salir si los pone pero no funcionan ni pegandoles con palo.
Cuando lo corro sobre IE 7.0 me sale "Error en la Pagina" en la barra de estado y cuando le doy click me dice error en la linea tal columna tal : El objeto no acepta esta propiedad o metodo. Me parece raro pues esa parte la he copiado tal cual sale en el manual, y se supone deberia funcionar, alguien que entienda mas de esto puede ayudarme aqui esta el codigo completo de sorteo y paginacion y pongo un comentario en la linea que reporta error
Código Javascript :
$.fn.alternateRowColors = function() {
$('tbody tr:odd', this).removeClass('even').addClass('odd');
$('tbody tr:even', this).removeClass('odd').addClass('even');
return this;
};
$(document).ready(function() {
var alternateRowColors = function($table) {
$('tbody tr:odd', $table).removeClass('even').addClass('odd');
$('tbody tr:even', $table).removeClass('odd').addClass('even');
};
$('table.sortable').each(function() {
var $table = $(this);
$table.alternateRowColors($table);
$table.find('th').each(function(column) {
var findSortKey;
if ($(this).is('.sort-alpha')) {
findSortKey = function($cell) {
return $cell.find('.sort-key').text().toUpperCase() +
' ' + $cell.text().toUpperCase();
};
}
else if ($(this).is('.sort-numeric')) {
findSortKey = function($cell) {
var key = parseFloat($cell.text());
return isNaN(key) ? 0 : key;
};
}
else if ($(this).is('.sort-date')) {
findSortKey = function($cell) {
return Date.parse($cell.text());
};
}
if (findSortKey) {
$(this).addClass('clickable').hover(function() {
$(this).addClass('hover');
}, function() {
$(this).removeClass('hover');
}).click(function() {
var newDirection = 1;
if ($(this).is('.sorted-asc')) {
newDirection = -1;
}
rows = $table.find('tbody > tr').get();
$.each(rows, function(index, row) {
row.sortKey =
findSortKey($(row).children('td').eq(column));
});
rows.sort(function(a, b) {
if (a.sortKey < b.sortKey) return -newDirection;
if (a.sortKey > b.sortKey) return newDirection;
return 0;
});
$.each(rows, function(index, row) {
$table.children('tbody').append(row);
row.sortKey = null;
});
$table.find('th').removeClass('sorted‑asc')
.removeClass('sorted-desc');
var $sortHead = $table.find('th').filter(':nth-child('
+ (column + 1) + ')');
if (newDirection == 1) {
$sortHead.addClass('sorted-asc');
} else {
$sortHead.addClass('sorted-desc');
}
$table.find('td').removeClass('sorted')
.filter(':nth-child(' + (column + 1) + ')')
.addClass('sorted');
$table.alternateRowColors($table);
$table.trigger('repaginate');
});
}
});
});
});
$(document).ready(function() {
$('table.sortable').each(function() {
/*La linea de arriba originalmente decia:
$('table.paginated').each(function() {
pero daba el mismo resultado con y necesitaba que mi tabla
tuviera class="paginated" lo cual hace que la parte de sort no
funcione pues esa pide class="sortable" */
var currentPage = 0;
var numPerPage = 5;
var $table = $(this);
$table.bind('repaginate', function() {
$table.find('tbody tr').show()
.lt(currentPage * numPerPage)
.hide()
.end()
.gt((currentPage + 1) * numPerPage - 1)
.hide()
.end();
});
var numRows = $table.find('tbody tr').length;
var numPages = Math.ceil(numRows / numPerPage);
var $pager = $('<div class="pager"></div>');
for (var page = 0; page < numPages; page++) {
$('<span class="page-number"> ' + (page + 1) + ' </span>')
.bind('click', {'newPage': page}, function(event) {
currentPage = event.data['newPage'];
$table.trigger('repaginate');
$(this).addClass('active').siblings().removeClass('active');
})
.appendTo($pager).addClass('clickable');
}
$pager.find('span.page-number:first').addClass('active');
$pager.insertAfter($table);
$table.trigger('repaginate');
});
});
El jquery esta bien cargado pues tengo otras scrips en la pagina que funcionan muy bien
