从ui-grid列标题中移除排序菜单。

28

我创建了一个ui-grid,它有三列,默认情况下,列标题有一个“v”形图标(在图片中用红圈标出):

enter image description here

这是代码和plunker:

var app = angular.module('app', ['ngTouch', 'ui.grid', 'ui.grid.expandable', 'ui.grid.selection', 'ui.grid.pinning']);


app.controller('ThirdCtrl', ['$scope', '$http', '$log', function ($scope, $http, $log) {
      $scope.gridOptions = {
        expandableRowTemplate: 'expandableRowTemplate.html',
        expandableRowHeight: 150,
        onRegisterApi: function (gridApi) {
            gridApi.expandable.on.rowExpandedStateChanged($scope, function (row) {
                if (row.isExpanded) {
                  row.entity.subGridOptions = {
                    columnDefs: [
                    { name: 'name'},
                    { name: 'gender'},
                    { name: 'company'}
                  ]};

                  $http.get('https://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/100.json')
                    .success(function(data) {
                      row.entity.subGridOptions.data = data;
                    });
                }
            });
        }
      }

      $scope.gridOptions.columnDefs = [
        { name: 'id', pinnedLeft:true },
        { name: 'name'},
        { name: 'age'},
        { name: 'address.city'}
      ];

      $http.get('https://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/500_complex.json')
        .success(function(data) {
          $scope.gridOptions.data = data;
        });
    }]);
.grid {
  width: 100%;
  height: 400px;
}
<!doctype html>
<html ng-app="app">
  <head>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular-touch.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular-animate.js"></script>
    <script src="http://ui-grid.info/docs/grunt-scripts/csv.js"></script>
    <script src="http://ui-grid.info/docs/grunt-scripts/pdfmake.js"></script>
    <script src="http://ui-grid.info/docs/grunt-scripts/vfs_fonts.js"></script>
    <script src="http://ui-grid.info/release/ui-grid.js"></script>
    <link rel="stylesheet" href="http://ui-grid.info/release/ui-grid.css" type="text/css">
    <link rel="stylesheet" href="main.css" type="text/css">
  </head>
  <body>


<div ng-controller="ThirdCtrl">
   <div ui-grid="gridOptions" ui-grid-expandable class="grid"></div>
</div>


    <script src="app.js"></script>
  </body>
</html>

在上面的图片中,是我在项目中创建的网格。
我的问题是如何去掉红圈中标题行的“v”标志?
4个回答

58

你想要的是:

$scope.gridOptions = {
    enableColumnMenus: false
    ...
}

1
这不是正确的答案。通常情况下,你需要定义你的columnDefs。然后你必须将enableColumnsMenus放在每个columnDef里面。所以下面的答案是正确的! - jet miller
8
我不确定是否应该说“这不是正确答案”。原帖问如何从所有标题中删除菜单下拉项,这个答案对于这个问题是正确的。另一个答案提供了有关细粒度的其他信息,但这并不意味着这个答案是错误的。 - bradimus

31

如果您想从所有列中删除它,请按照Chris的建议执行以下操作:

    $scope.gridOptions = {
        enableColumnMenus: false
        ...
    }

但是,如果您想从一个或多个列中删除它,而不是全部列,则需要

 $scope.gridOptions = {
    columnDefs: [
        {                    
            enableColumnMenu: false,
    ...
}

请注意,enableColumnMenus 的默认值为 true。


9

您可以禁用排序

    $scope.gridOptions = {
           enableSorting: false,
           .. 
    }

有什么方法可以移除表头行上的'v'符号吗? - Michael
1
有没有办法可以在列菜单中删除特定的条目?假设启用了列固定功能,那么在菜单中会出现固定到左侧或右侧。但是对于某些特定的列,我想隐藏它。是否有相关的配置可以实现这一点? - BiJ
因为某些原因,这对我起作用了,但不像更流行的答案中的enableColumnMenu那样。 - cellepo

4

我通过在相应的列定义中指定enableSorting: false来实现这一点,这与规范说明的sortable: false相反。

var uiGrid = [];
var columnsUiGrid = [
    { displayName: 'Column A', field: 'model.ColumnA' },
    { displayName: 'Column B', field: 'model.ColumnB', enableSorting: false }
];

$scope.uiGridOptions = {
    enableSorting: true,
    columnDefs: columnsUiGrid,
    data: uiGrid
};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接