www.pudn.com > ProjectSend_feeywt.rar > jquery.tablesorter.pager.js, change:2010-08-12,size:4028b


(function($) { 
	$.extend({ 
		tablesorterPager: new function() { 
			 
			function updatePageDisplay(c) { 
				var s = $(c.cssPageDisplay,c.container).val((c.page+1) + c.seperator + c.totalPages);	 
			} 
			 
			function setPageSize(table,size) { 
				var c = table.config; 
				c.size = size; 
				c.totalPages = Math.ceil(c.totalRows / c.size); 
				c.pagerPositionSet = false; 
				moveToPage(table); 
				fixPosition(table); 
			} 
			 
			function fixPosition(table) { 
				var c = table.config; 
				if(!c.pagerPositionSet && c.positionFixed) { 
					var c = table.config, o = $(table); 
					if(o.offset) { 
						c.container.css({ 
							position: 'relative' 
						}); 
					} 
					c.pagerPositionSet = true; 
				} 
			} 
			 
			function moveToFirstPage(table) { 
				var c = table.config; 
				c.page = 0; 
				moveToPage(table); 
			} 
			 
			function moveToLastPage(table) { 
				var c = table.config; 
				c.page = (c.totalPages-1); 
				moveToPage(table); 
			} 
			 
			function moveToNextPage(table) { 
				var c = table.config; 
				c.page++; 
				if(c.page >= (c.totalPages-1)) { 
					c.page = (c.totalPages-1); 
				} 
				moveToPage(table); 
			} 
			 
			function moveToPrevPage(table) { 
				var c = table.config; 
				c.page--; 
				if(c.page <= 0) { 
					c.page = 0; 
				} 
				moveToPage(table); 
			} 
						 
			 
			function moveToPage(table) { 
				var c = table.config; 
				if(c.page < 0 || c.page > (c.totalPages-1)) { 
					c.page = 0; 
				} 
				 
				renderTable(table,c.rowsCopy); 
			} 
			 
			function renderTable(table,rows) { 
				 
				var c = table.config; 
				var l = rows.length; 
				var s = (c.page * c.size); 
				var e = (s + c.size); 
				if(e > rows.length ) { 
					e = rows.length; 
				} 
				 
				 
				var tableBody = $(table.tBodies[0]); 
				 
				// clear the table body 
				 
				$.tablesorter.clearTableBody(table); 
				 
				for(var i = s; i < e; i++) { 
					 
					//tableBody.append(rows[i]); 
					 
					var o = rows[i]; 
					var l = o.length; 
					for(var j=0; j < l; j++) { 
						 
						tableBody[0].appendChild(o[j]); 
 
					} 
				} 
				 
				fixPosition(table,tableBody); 
				 
				$(table).trigger("applyWidgets"); 
				 
				if( c.page >= c.totalPages ) { 
        			moveToLastPage(table); 
				} 
				 
				updatePageDisplay(c); 
			} 
			 
			this.appender = function(table,rows) { 
				 
				var c = table.config; 
				 
				c.rowsCopy = rows; 
				c.totalRows = rows.length; 
				c.totalPages = Math.ceil(c.totalRows / c.size); 
				 
				renderTable(table,rows); 
			}; 
			 
			this.defaults = { 
				size: 10, 
				offset: 0, 
				page: 0, 
				totalRows: 0, 
				totalPages: 0, 
				container: null, 
				cssNext: '.next', 
				cssPrev: '.prev', 
				cssFirst: '.first', 
				cssLast: '.last', 
				cssPageDisplay: '.pagedisplay', 
				cssPageSize: '.pagesize', 
				seperator: "/", 
				positionFixed: true, 
				appender: this.appender 
			}; 
			 
			this.construct = function(settings) { 
				 
				return this.each(function() {	 
					 
					config = $.extend(this.config, $.tablesorterPager.defaults, settings); 
					 
					var table = this, pager = config.container; 
				 
					$(this).trigger("appendCache"); 
					 
					config.size = parseInt($(".pagesize",pager).val()); 
					 
					$(config.cssFirst,pager).click(function() { 
						moveToFirstPage(table); 
						return false; 
					}); 
					$(config.cssNext,pager).click(function() { 
						moveToNextPage(table); 
						return false; 
					}); 
					$(config.cssPrev,pager).click(function() { 
						moveToPrevPage(table); 
						return false; 
					}); 
					$(config.cssLast,pager).click(function() { 
						moveToLastPage(table); 
						return false; 
					}); 
					$(config.cssPageSize,pager).change(function() { 
						setPageSize(table,parseInt($(this).val())); 
						return false; 
					}); 
				}); 
			}; 
			 
		} 
	}); 
	// extend plugin scope 
	$.fn.extend({ 
        tablesorterPager: $.tablesorterPager.construct 
	}); 
	 
})(jQuery);