From edb75f0f04c9ed91d7447bc665ed3ce534eaeafb Mon Sep 17 00:00:00 2001 From: David Angier Date: Sat, 16 Nov 2013 05:13:11 +1000 Subject: [PATCH] Fixed issue #777 where clearing the filter is slow after a sort operation. The renderedRange was incorrectly being set to the whole of the source data. --- src/classes/grid.js | 2 +- src/directives/ng-grid.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/classes/grid.js b/src/classes/grid.js index 6d08ba9ab8..1b70821997 100644 --- a/src/classes/grid.js +++ b/src/classes/grid.js @@ -803,7 +803,7 @@ var ngGrid = function ($scope, options, sortService, domUtilityService, $filter, newRange = new ngRange(Math.max(0, rowIndex - EXCESS_ROWS), rowIndex + self.minRowsToRender() + EXCESS_ROWS); } else { var maxLen = $scope.configGroups.length > 0 ? self.rowFactory.parsedData.length : self.data.length; - newRange = new ngRange(0, Math.max(maxLen, self.minRowsToRender() + EXCESS_ROWS)); + newRange = new ngRange(0, Math.min(maxLen, self.minRowsToRender() + EXCESS_ROWS)); } self.prevScrollTop = scrollTop; self.rowFactory.UpdateViewableRange(newRange); diff --git a/src/directives/ng-grid.js b/src/directives/ng-grid.js index 98980db50e..bdc28e5e4f 100644 --- a/src/directives/ng-grid.js +++ b/src/directives/ng-grid.js @@ -74,6 +74,7 @@ $scope.$parent.$watch(options.data, dataWatcher); $scope.$parent.$watch(options.data + '.length', function() { dataWatcher($scope.$eval(options.data)); + $scope.adjustScrollTop(grid.$viewport.scrollTop(), true); }); }