我有一个网格,上面有菜单和项目。
如果我使用内置菜单隐藏了所有项目,我想刷新分页,使其显示0-100个项目。
我发现我遍历所有列的唯一方法是,如果所有列都被隐藏,那么我只会隐藏分页,但这是一个糟糕的解决方案。
http://next.plnkr.co/edit/I3fdjfJDCfoZ8MCH
(使用右侧的网格菜单隐藏所有项目)
现在我这样做:
let allHidden = true;
lodash.forEach(column.grid.columns, function (col) {
if (col.visible) {
allHidden = false;
return;
}
});
if(allHidden)
$scope.gridOptions1.enablePaginationControls= false;
else
$scope.gridOptions1.enablePaginationControls= true;
但是仍然有滚动条,实际上我不喜欢这种解决方案
答案 0 :(得分:0)
您可以禁用两个滚动条,并稍微更改循环。 仍然是一个肮脏的结构(用您的话说:),因为当您决定取消隐藏任何列时,事情都会变得很混乱……您将必须再次启用两个scollbar。
gridApi.core.on.columnVisibilityChanged($scope, column => {
if(!column.grid.columns.some(function(col) {return col.visible}))
{
column.grid.options.enablePaginationControls = false;
column.grid.options.enableHorizontalScrollbar = uiGridConstants.scrollbars.NEVER;
column.grid.options.enableVerticalScrollbar = uiGridConstants.scrollbars.NEVER;
}
});
顺便说一句,您必须注入uiGridConstants才能使用uiGridConstants.scrollbars.NEVER
。
也许对您的问题有更好的解决方案,但是对我来说不清楚您要在这里实现什么。