summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Leibman <michael.leibman@gmail.com>2012-01-20 17:25:03 -0800
committerMichael Leibman <mleibman@google.com>2012-01-20 17:25:03 -0800
commit75d396d167845bb802f4f48ca0816a44cbd3fb6d (patch)
treeae681f424e4f0ba038ac9b0923867efa176933ef
parent81276a2a5b25b6a9d4407ae8d2ffbf3e59aab967 (diff)
downloadSlickGrid-75d396d167845bb802f4f48ca0816a44cbd3fb6d.zip
SlickGrid-75d396d167845bb802f4f48ca0816a44cbd3fb6d.tar.gz
SlickGrid-75d396d167845bb802f4f48ca0816a44cbd3fb6d.tar.bz2
Fixed issue #142 - incorrect "total pages" calculation in the pager control.
-rw-r--r--controls/slick.pager.js38
1 files changed, 19 insertions, 19 deletions
diff --git a/controls/slick.pager.js b/controls/slick.pager.js
index 5da5c25..c953b37 100644
--- a/controls/slick.pager.js
+++ b/controls/slick.pager.js
@@ -14,49 +14,52 @@
function getNavState() {
var cannotLeaveEditMode = !Slick.GlobalEditorLock.commitCurrentEdit();
var pagingInfo = dataView.getPagingInfo();
- var lastPage = Math.floor(pagingInfo.totalRows / pagingInfo.pageSize);
+ var lastPage = Math.ceil(pagingInfo.totalRows / pagingInfo.pageSize) - 1;
+ if (lastPage < 0) {
+ lastPage = 0;
+ }
return {
- canGotoFirst:!cannotLeaveEditMode && pagingInfo.pageSize != 0 && pagingInfo.pageNum > 0,
- canGotoLast:!cannotLeaveEditMode && pagingInfo.pageSize != 0 && pagingInfo.pageNum != lastPage,
- canGotoPrev:!cannotLeaveEditMode && pagingInfo.pageSize != 0 && pagingInfo.pageNum > 0,
- canGotoNext:!cannotLeaveEditMode && pagingInfo.pageSize != 0 && pagingInfo.pageNum < lastPage,
- pagingInfo:pagingInfo,
- lastPage:lastPage
+ canGotoFirst: !cannotLeaveEditMode && pagingInfo.pageSize != 0 && pagingInfo.pageNum > 0,
+ canGotoLast: !cannotLeaveEditMode && pagingInfo.pageSize != 0 && pagingInfo.pageNum != lastPage,
+ canGotoPrev: !cannotLeaveEditMode && pagingInfo.pageSize != 0 && pagingInfo.pageNum > 0,
+ canGotoNext: !cannotLeaveEditMode && pagingInfo.pageSize != 0 && pagingInfo.pageNum < lastPage,
+ pagingInfo: pagingInfo,
+ lastPage: lastPage
}
}
function setPageSize(n) {
dataView.setRefreshHints({
- isFilterUnchanged:true
+ isFilterUnchanged: true
});
- dataView.setPagingOptions({pageSize:n});
+ dataView.setPagingOptions({pageSize: n});
}
function gotoFirst() {
if (getNavState().canGotoFirst) {
- dataView.setPagingOptions({pageNum:0});
+ dataView.setPagingOptions({pageNum: 0});
}
}
function gotoLast() {
var state = getNavState();
if (state.canGotoLast) {
- dataView.setPagingOptions({pageNum:state.lastPage});
+ dataView.setPagingOptions({pageNum: state.lastPage});
}
}
function gotoPrev() {
var state = getNavState();
if (state.canGotoPrev) {
- dataView.setPagingOptions({pageNum:state.pagingInfo.pageNum - 1});
+ dataView.setPagingOptions({pageNum: state.pagingInfo.pageNum - 1});
}
}
function gotoNext() {
var state = getNavState();
if (state.canGotoNext) {
- dataView.setPagingOptions({pageNum:state.pagingInfo.pageNum + 1});
+ dataView.setPagingOptions({pageNum: state.pagingInfo.pageNum + 1});
}
}
@@ -76,8 +79,7 @@
if (pagesize == -1) {
var vp = grid.getViewport();
setPageSize(vp.bottom - vp.top);
- }
- else {
+ } else {
setPageSize(parseInt(pagesize));
}
}
@@ -134,12 +136,10 @@
$container.find(".ui-icon-seek-prev").addClass("ui-state-disabled");
}
-
if (pagingInfo.pageSize == 0) {
$status.text("Showing all " + pagingInfo.totalRows + " rows");
- }
- else {
- $status.text("Showing page " + (pagingInfo.pageNum + 1) + " of " + (Math.floor(pagingInfo.totalRows / pagingInfo.pageSize) + 1));
+ } else {
+ $status.text("Showing page " + (pagingInfo.pageNum + 1) + " of " + (state.lastPage + 1));
}
}