3 tablesorterPager: new function() {
\r
5 function updatePageDisplay(c) {
\r
6 var s = $(c.cssPageDisplay,c.container).val((c.page+1) + c.seperator + c.totalPages);
\r
9 function setPageSize(table,size) {
\r
10 var c = table.config;
\r
12 c.totalPages = Math.ceil(c.totalRows / c.size);
\r
13 c.pagerPositionSet = false;
\r
18 function fixPosition(table) {
\r
19 var c = table.config;
\r
20 if(!c.pagerPositionSet && c.positionFixed) {
\r
21 var c = table.config, o = $(table);
\r
24 top: o.offset().top + o.height() + 'px',
\r
25 position: 'absolute'
\r
28 c.pagerPositionSet = true;
\r
32 function moveToFirstPage(table) {
\r
33 var c = table.config;
\r
38 function moveToLastPage(table) {
\r
39 var c = table.config;
\r
40 c.page = (c.totalPages-1);
\r
44 function moveToNextPage(table) {
\r
45 var c = table.config;
\r
47 if(c.page >= (c.totalPages-1)) {
\r
48 c.page = (c.totalPages-1);
\r
53 function moveToPrevPage(table) {
\r
54 var c = table.config;
\r
63 function moveToPage(table) {
\r
64 var c = table.config;
\r
65 if(c.page < 0 || c.page > (c.totalPages-1)) {
\r
69 renderTable(table,c.rowsCopy);
\r
72 function renderTable(table,rows) {
\r
74 var c = table.config;
\r
75 var l = rows.length;
\r
76 var s = (c.page * c.size);
\r
77 var e = (s + c.size);
\r
78 if(e > rows.length ) {
\r
83 var tableBody = $(table.tBodies[0]);
\r
85 // clear the table body
\r
87 $.tablesorter.clearTableBody(table);
\r
89 for(var i = s; i < e; i++) {
\r
91 //tableBody.append(rows[i]);
\r
95 for(var j=0; j < l; j++) {
\r
97 tableBody[0].appendChild(o[j]);
\r
102 fixPosition(table,tableBody);
\r
104 $(table).trigger("applyWidgets");
\r
106 if( c.page >= c.totalPages ) {
\r
107 moveToLastPage(table);
\r
110 updatePageDisplay(c);
\r
113 this.appender = function(table,rows) {
\r
115 var c = table.config;
\r
118 c.totalRows = rows.length;
\r
119 c.totalPages = Math.ceil(c.totalRows / c.size);
\r
121 renderTable(table,rows);
\r
133 cssFirst: '.first',
\r
135 cssPageDisplay: '.pagedisplay',
\r
136 cssPageSize: '.pagesize',
\r
138 positionFixed: true,
\r
139 appender: this.appender
\r
142 this.construct = function(settings) {
\r
144 return this.each(function() {
\r
146 config = $.extend(this.config, $.tablesorterPager.defaults, settings);
\r
148 var table = this, pager = config.container;
\r
150 $(this).trigger("appendCache");
\r
152 config.size = parseInt($(".pagesize",pager).val());
\r
154 $(config.cssFirst,pager).click(function() {
\r
155 moveToFirstPage(table);
\r
158 $(config.cssNext,pager).click(function() {
\r
159 moveToNextPage(table);
\r
162 $(config.cssPrev,pager).click(function() {
\r
163 moveToPrevPage(table);
\r
166 $(config.cssLast,pager).click(function() {
\r
167 moveToLastPage(table);
\r
170 $(config.cssPageSize,pager).change(function() {
\r
171 setPageSize(table,parseInt($(this).val()));
\r
179 // extend plugin scope
\r
181 tablesorterPager: $.tablesorterPager.construct
\r