2016-11-09 95 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