@@ -15,44 +15,52 @@ All features are enabled to get an idea of performance
15
15
16
16
app.controller('MainCtrl', ['$scope', '$http', '$timeout', '$interval', 'uiGridConstants', 'uiGridGroupingConstants',
17
17
function ($scope, $http, $timeout, $interval, uiGridConstants, uiGridGroupingConstants) {
18
-
19
- $scope.gridOptions = {};
20
- $scope.gridOptions.data = 'myData';
21
- $scope.gridOptions.enableCellEditOnFocus = true;
22
- $scope.gridOptions.enableColumnResizing = true;
23
- $scope.gridOptions.enableFiltering = true;
24
- $scope.gridOptions.enableGridMenu = true;
25
- $scope.gridOptions.showGridFooter = true;
26
- $scope.gridOptions.showColumnFooter = true;
27
- $scope.gridOptions.fastWatch = true;
28
-
29
- $scope.gridOptions.rowIdentity = function(row) {
30
- return row.id;
18
+ var gridApi;
19
+
20
+ $scope.gridOptions = {
21
+ data: 'myData',
22
+ enableCellEditOnFocus: true,
23
+ enableColumnResizing: true,
24
+ enableFiltering: true,
25
+ enableGridMenu: true,
26
+ showGridFooter: true,
27
+ showColumnFooter: true,
28
+ fastWatch: true,
29
+ rowIdentity: getRowId,
30
+ getRowIdentity: getRowId,
31
+ columnDefs: [
32
+ { name:'id', width:50 },
33
+ { name:'name', width:100 },
34
+ { name:'age', width:100, enableCellEdit: true, aggregationType:uiGridConstants.aggregationTypes.avg, treeAggregationType: uiGridGroupingConstants.aggregation.AVG },
35
+ { name:'address.street', width:150, enableCellEdit: true },
36
+ { name:'address.city', width:150, enableCellEdit: true },
37
+ { name:'address.state', width:50, enableCellEdit: true },
38
+ { name:'address.zip', width:50, enableCellEdit: true },
39
+ { name:'company', width:100, enableCellEdit: true },
40
+ { name:'email', width:100, enableCellEdit: true },
41
+ { name:'phone', width:200, enableCellEdit: true },
42
+ { name:'about', width:300, enableCellEdit: true },
43
+ { name:'friends[0].name', displayName:'1st friend', width:150, enableCellEdit: true },
44
+ { name:'friends[1].name', displayName:'2nd friend', width:150, enableCellEdit: true },
45
+ { name:'friends[2].name', displayName:'3rd friend', width:150, enableCellEdit: true },
46
+ { name:'agetemplate',field:'age', width:150, cellTemplate: '<div class="ui-grid-cell-contents"><span>Age 2:{{COL_FIELD}}</span></div>' },
47
+ { name:'Is Active',field:'isActive', width:150, type:'boolean' },
48
+ { name:'Join Date',field:'registered', cellFilter:'date', width:150, type:'date', enableFiltering:false },
49
+ { name:'Month Joined',field:'registered', cellFilter: 'date:"MMMM"', filterCellFiltered:true, sortCellFiltered:true, width:150, type:'date' }
50
+ ],
51
+ onRegisterApi: function onRegisterApi(registeredApi) {
52
+ gridApi = registeredApi;
53
+ }
31
54
};
32
- $scope.gridOptions.getRowIdentity = function(row) {
55
+
56
+ function getRowId(row) {
33
57
return row.id;
34
- };
58
+ }
35
59
36
- $scope.gridOptions.columnDefs = [
37
- { name:'id', width:50 },
38
- { name:'name', width:100 },
39
- { name:'age', width:100, enableCellEdit: true, aggregationType:uiGridConstants.aggregationTypes.avg, treeAggregationType: uiGridGroupingConstants.aggregation.AVG },
40
- { name:'address.street', width:150, enableCellEdit: true },
41
- { name:'address.city', width:150, enableCellEdit: true },
42
- { name:'address.state', width:50, enableCellEdit: true },
43
- { name:'address.zip', width:50, enableCellEdit: true },
44
- { name:'company', width:100, enableCellEdit: true },
45
- { name:'email', width:100, enableCellEdit: true },
46
- { name:'phone', width:200, enableCellEdit: true },
47
- { name:'about', width:300, enableCellEdit: true },
48
- { name:'friends[0].name', displayName:'1st friend', width:150, enableCellEdit: true },
49
- { name:'friends[1].name', displayName:'2nd friend', width:150, enableCellEdit: true },
50
- { name:'friends[2].name', displayName:'3rd friend', width:150, enableCellEdit: true },
51
- { name:'agetemplate',field:'age', width:150, cellTemplate: '<div class="ui-grid-cell-contents"><span>Age 2:{{COL_FIELD}}</span></div>' },
52
- { name:'Is Active',field:'isActive', width:150, type:'boolean' },
53
- { name:'Join Date',field:'registered', cellFilter:'date', width:150, type:'date', enableFiltering:false },
54
- { name:'Month Joined',field:'registered', cellFilter: 'date:"MMMM"', filterCellFiltered:true, sortCellFiltered:true, width:150, type:'date' }
55
- ];
60
+ $scope.toggleFilterRow = function() {
61
+ $scope.gridOptions.enableFiltering = !$scope.gridOptions.enableFiltering;
62
+ gridApi.core.notifyDataChange(uiGridConstants.dataChange.COLUMN);
63
+ };
56
64
57
65
$scope.callsPending = 0;
58
66
@@ -90,13 +98,12 @@ All features are enabled to get an idea of performance
90
98
$timeout.cancel(timeout);
91
99
$interval.cancel(sec);
92
100
});
93
-
94
101
};
95
-
96
102
}]);
97
103
</file>
98
104
<file name="index.html">
99
105
<div ng-controller="MainCtrl">
106
+ <button id="filterToggle" type="button" class="btn btn-success" ng-click="toggleFilterRow()">Toggle Filter</button>
100
107
<button id="refreshButton" type="button" class="btn btn-success" ng-click="refreshData()">Refresh Data</button> <strong>Calls Pending:</strong> <span ng-bind="callsPending"></span>
101
108
<br>
102
109
<br>
0 commit comments