Kendo UI Grid
Local data, mobile scrolling.
by marhaba
HTML
<link rel="stylesheet" href="http://cdn.kendostatic.com/2011.3.1129/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2011.3.1129/styles/kendo.blueopal.min.css">
<script src="http://cdn.kendostatic.com/2011.3.1129/js/kendo.all.min.js"></script>
<script src="http://code.angularjs.org/1.0.0/angular-1.0.0.js"></script>
<div ng:app="myApp">
<div id="grid"></div>
<div ng:controller="Tester">
<kendogrid source="people" groupable="true" sortable="true" columns="columns" pageable="true"></kendogrid>
<input type="text" ng-model="nameInput">
<input type="number" ng-model="ageInput">
<button ng-click="onSubmit()" type="button">Submit</button>
</div>
</div>
JavaScript
var myApp = angular.module('myApp', []);
myApp.directive('kendogrid', function() {
return {
restrict: 'E',
replace: true,
scope:{source:'=source',columns:'=columns'},
template: '<div id="kendogrid"></div>',
link: function(scope,element,attrs) {
element.kendoGrid({
dataSource: scope.source,
groupable: attrs.groupable,
sortable: attrs.sortable,
pageable: {
refresh: true,
pageSizes: true
},
columns: scope.columns
});
}
};
});
function Tester($scope) {
$scope.columns = [ {
field: "name",
width: 90,
title: "First Name"
} , {
field: "age",
width: 90,
title: "Last Name"
}
];
var man1 = new Man('name1', 25);
var man2 = new Man('name2', 28);
var man3 = new Man('name3', 21);
$scope.onSubmit = function(){
if($scope.nameInput !== "" && $scope.ageInput !== "")
{
var myman = new Man($scope.nameInput,$scope.ageInput);
$scope.people.push(myman);
}
}
$scope.people = [man1, man2, man3];
}
function Man(name, age) {
this.name = name;
this.age = age;
}