Wijmo 5 (Angular) - Checkbox Highlight Row
by Joel Parks
HTML
<script src="http://cdn.wijmo.com/5.20142.0/controls/wijmo.min.js"></script>
<link rel="stylesheet" href="http://cdn.wijmo.com/5.20142.0/styles/wijmo.min.css">
<script src="http://cdn.wijmo.com/5.20142.0/controls/wijmo.grid.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js"></script>
<script src="http://cdn.wijmo.com/5.20142.0/interop/angular/wijmo.angular.min.js"></script>
<!-- mark this as an Angular application and give it a controller -->
<div ng-app="app" ng-controller="appCtrl">
<h1>Header Checkbox Example</h1>
<wj-flex-grid
items-source="data"
selection-mode="ListBox">
<wj-flex-grid-column header="Name" binding="name"></wj-flex-grid-column>
<wj-flex-grid-column header="Age" binding="age"></wj-flex-grid-column>
<wj-flex-grid-column header="Active" binding="active"></wj-flex-grid-column>
</wj-flex-grid>
</div>
JavaScript
// define app, include Wijmo 5 directives
var app = angular.module('app', ['wj']);
// controller
app.controller('appCtrl', function ($scope) {
var names = 'Paul,Ringo,George,John'.split(',');
var age = [12,10,11,14];
var data = [];
for(var i = 0; i < names.length; i++){
data.push({
name: names[i],
age: age[i],
active: false
});
}
// create some data
$scope.data = data;
$scope.itemFormatter = function(panel,r,c,cell){
}
// formatter to add checkboxes to boolean columns
/*$scope.itemFormatter = function (panel, r, c, cell) {
if (panel.cellType == wijmo.grid.CellType.ColumnHeader) {
var flex = panel.grid;
var col = flex.columns[c];
// check that this is a boolean column
if (col.dataType == wijmo.DataType.Boolean) {
// prevent sorting on click
col.allowSorting = false;
// count true values to initialize checkbox
var cnt = 0;
for (var i = 0; i < flex.rows.length; i++) {
if (flex.getCellData(i, c) == true) cnt++;
}
// create and initialize checkbox
cell.innerHTML = '<input type="checkbox"> ' + cell.innerHTML;
var cb = cell.firstChild;
cb.checked = cnt > 0;
cb.indeterminate = cnt > 0 && cnt < flex.rows.length;
// apply checkbox value to cells
cb.addEventListener('click', function (e) {
flex.beginUpdate();
for (var i = 0; i < flex.rows.length; i++) {
flex.setCellData(i, c, cb.checked);
}
flex.endUpdate();
});
}
}
}*/
//console.log($scope.data);
});