如何在角度ui网格中禁用客户端排序?

时间:2016-11-09 11:15:26

标签: javascript angularjs angular-ui angular-ui-grid ui-grid

我有两个问题。

  1. 我试图在ui-grid中禁用客户端排序,我该怎么做?

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

    scope.gridOptions.data = res;

    scope.gridApi.core.refresh();

  3. 第一个链接我正在尝试将新数据分配给ui-grid并刷新ui-grid。这不行?我怎么能这样做?

    谢谢

3 个答案:

答案 0 :(得分:1)

为了禁用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>
&#13;
&#13;
&#13;

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

答案 1 :(得分:1)

对于您的第一个问题,要禁用ui-grid的客户端排序,您需要在gridOptions中将此标志设置为false,如下所示:

scope.gridOptions.enableSorting: false;

关于第二个问题,要通过重新设置网格数据来更改视图,请尝试在以后添加此行:

scope.$apply

答案 2 :(得分:0)

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

enableSorting:false