简体   繁体   English

如何禁用Angular ui-grid中的客户端排序?

[英]How to disable client side sorting in angular ui-grid?

I have two questions. 我有两个问题。

  1. I am trying to disable client side sorting in ui-grid, how can I do it? 我正在尝试在ui-grid中禁用客户端排序,该怎么办?

  2. Instead of client side sorting, I need to set another data set to ui-grid and refresh the data set. 代替客户端排序,我需要将另一个数据集设置为ui-grid并刷新该数据集。

    scope.gridOptions.data = res ; scope.gridOptions.data = res ;

    scope.gridApi.core.refresh();

first link I am trying to assign new data to ui-grid and refresh the ui-grid. 第一个链接,我试图将新数据分配给ui-grid并刷新ui-grid。 This is not working? 这不行吗? How can I do that ? 我怎样才能做到这一点 ?

Thank you 谢谢

In order to disable the client side sorting of ui-grid, you need to set enableSorting: false on grid definition. 为了禁用ui-grid的客户端排序,您需要在网格定义上设置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" }, { 'company': "Company2", 'gender': "gender2", 'name': "name2" } ]; } }]); </script> </body> </html> 

In order to refresh the data set you need to reset the data source of the grid ie, need to set the new data source to $scope.gridOptions1.data 为了刷新数据集,您需要重置网格的数据源,即,需要将新数据源设置为$scope.gridOptions1.data

For your first question, to disable client-side sorting of ui-grid, you need to set this flag in gridOptions with false as follow: 对于第一个问题,要禁用ui-grid的客户端排序,您需要在gridOptions将此标志设置为false,如下所示:

scope.gridOptions.enableSorting: false;

For your second question, to make your view change with re-setting the data of the grid, try adding this line afterwards: 对于第二个问题,要通过重新设置网格数据来更改视图,请尝试在此后添加以下行:

scope.$apply

只需将属性enableSorting = false放入即可解决排序问题。

enableSorting:false

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM