With the latest version of ui-grid (v3.0.0-rc.16) it is possible to turn the horizontal and vertical scrollbar off seperately.
I got this working by exchanging
$scope.gridOptions.enableScrollbars = false;
with
$scope.gridOptions.enableHorizontalScrollbar = 0;
$scope.gridOptions.enableVerticalScrollbar = 0;
In the sources of ui-grid there are three Constants defined for the scrollbars:
scrollbars: {
NEVER: 0,
ALWAYS: 1,
WHEN_NEEDED: 2
}
Facing the fact that ui-grid is still unstable and changed very often, i would feel more comfortable using those constants instead of the specific values. But how can i access them ?
Plunker: http://plnkr.co/edit/h0ewAZK616rKCH3T62te
Got my answer on github:
All I needed to do was to pass uiGridConstants to my controller like this:
angular.module('myApp').controller('myCtrl',function($scope,uiGridConstants) {
...
$scope.gridOptions.enableHorizontalScrollbar = uiGridConstants.scrollbars.NEVER;
...
})
With John Papa style:
ExampleController.$inject = ['$scope', 'uiGridConstants'];
function ExampleController($scope, uiGridConstants) {
var vm = this;
vm.gridOptions = {
enableHorizontalScrollbar : uiGridConstants.scrollbars.NEVER,
enableVerticalScrollbar : uiGridConstants.scrollbars.NEVER
};
}
A workaround for this (since WHEN_NEEDED is currently disabled) is to set enableHorizontalScrollbar: 0
on your gridOptions and then in your stylesheet have the following:
.ui-grid .ui-grid-render-container-body .ui-grid-viewport {
overflow-x: auto !important;
}
Now the horizontal scroll bar only displays when needed.