2016-11-09 82 views
0

我有两个问题。如何禁用角度ui网格中的客户端排序?

  1. 我想禁用ui网格中的客户端排序,我该怎么做?

  2. 而不是客户端排序,我需要将另一个数据集设置为ui-grid并刷新数据集。

    scope.gridOptions.data = res;

    scope.gridApi.core.refresh();

我想新的数据分配给UI电网并刷新UI电网的首要环节。这不起作用?我怎样才能做到这一点 ?

谢谢

+0

这是您使用的网格吗?你能分享网址吗? – Nitheesh

+0

这里是我使用的用户界面网格http://ui-grid.info/ –

回答

1

为了禁用UI网的客户端排序,你需要设置enableSorting: false对电网的定义。

<!doctype html> 
 
<html ng-app="app"> 
 

 
<head> 
 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js"></script> 
 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular-touch.js"></script> 
 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/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"> 
 
</head> 
 

 
<body> 
 

 
    <div ng-controller="MainCtrl"> 
 

 
     <div id="grid1" ui-grid="gridOptions1" class="grid"></div> 
 
     <button ng-click="resetGrid()">Reset</button> 
 
    </div> 
 

 

 
    <script> 
 
     var app = angular.module('app', ['ngAnimate', 'ngTouch', 'ui.grid']); 
 

 
     app.controller('MainCtrl', ['$scope', '$http', 'uiGridConstants', function ($scope, $http, uiGridConstants) { 
 
      $scope.gridOptions1 = { 
 
       enableSorting: false, 
 
       columnDefs: [ 
 
        { 
 
         field: 'name' 
 
        }, 
 
        { 
 
         field: 'gender' 
 
        }, 
 
        { 
 
         field: 'company' 
 
        } 
 
       ], 
 
       onRegisterApi: function (gridApi) { 
 
        $scope.grid1Api = gridApi; 
 
       } 
 
      }; 
 

 
      $scope.toggleGender = function() { 
 
       if ($scope.gridOptions1.data[64].gender === 'male') { 
 
        $scope.gridOptions1.data[64].gender = 'female'; 
 
       } else { 
 
        $scope.gridOptions1.data[64].gender = 'male'; 
 
       }; 
 
       $scope.grid1Api.core.notifyDataChange(uiGridConstants.dataChange.EDIT); 
 
      }; 
 

 

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

 
      $scope.resetGrid = function() { 
 
       $scope.gridOptions1.data = [ 
 
        { 
 
         'company': "Company1", 
 
         'gender': "gender1", 
 
         'name': "name1" 
 
\t    }, 
 
        { 
 
         'company': "Company2", 
 
         'gender': "gender2", 
 
         'name': "name2" 
 
\t    } 
 
\t    ]; 
 
      } 
 

 
      }]); 
 
    </script> 
 
</body> 
 

 
</html>

为了刷新数据集,你需要重新设置网格即数据源,需要将新的数据源设置为$scope.gridOptions1.data

+0

感谢@Nitheesh,你有什么想法我怎么刷新数据集? –

+0

为了刷新数据集,您需要重置网格的数据源,即需要将新数据源设置为$ scope.gridOptions1.data – Nitheesh

+0

是的,我做到了,但它没有像预期的那样工作:( –

0

只是把财产enableSorting =解决你的排序问题是错误的。

enableSorting:false 
1

关于第一个问题,禁用UI网的客户端排序,你需要设置该标志在gridOptions假如下:

scope.gridOptions.enableSorting: false; 

关于第二个问题,以使您的视图会随着重新设置网格数据而发生变化,请尝试在之后添加以下行:

scope.$apply