Skip to content

Instantly share code, notes, and snippets.

@JeroenVinke
Last active May 28, 2017 18:29
Show Gist options
  • Save JeroenVinke/c6e4152a02c2d99e955a82f7110bd92f to your computer and use it in GitHub Desktop.
Save JeroenVinke/c6e4152a02c2d99e955a82f7110bd92f to your computer and use it in GitHub Desktop.
Grid: basic usage
<template>
<ak-grid k-data-source.bind="datasource">
<ak-col repeat.for="col of columnsMetadata"
k-title="${col.title}"
k-field="${col.field}"
k-template.bind="col.template"
k-group-footer-template.bind="col.groupFooterTemplate"
k-group-template.bind="col.groupTemplate">
</ak-col>
</ak-grid>
</template>
export class Grid {
pageable = {
refresh: true,
pageSizes: true,
buttonCount: 10
};
datasource = {
type: 'odata',
transport: {
read: '//demos.telerik.com/kendo-ui/service/Northwind.svc/Products'
},
schema: { //this this is dynamic and will come from the database
model: {
fields: {
ProductName: { type: "string" },
UnitPrice: { type: "number" },
UnitsOnOrder: { type: "number" },
UnitsInStock: { type: "number" },
}
}
},
pageSize: 10,
group: { //this is dynamic and will come from the database
field: "UnitsInStock",
aggregates: [
{ field: "ProductName", aggregate: "count" },
{ field: "UnitPrice", aggregate: "sum" },
{ field: "UnitsOnOrder", aggregate: "average" },
{ field: "UnitsInStock", aggregate: "count" }
]
},
aggregate: [ //this is dynamic and will come from the database
{ field: "ProductName", aggregate: "count" },
{ field: "UnitPrice", aggregate: "sum" },
{ field: "UnitsOnOrder", aggregate: "average" },
{ field: "UnitsInStock", aggregate: "min" },
{ field: "UnitsInStock", aggregate: "max" }
]
};
columnsMetadata = [ //this is dynamic and will come from the database
{ field: "UnitPrice",
title: "Unit Price Title",
format: 'n0',
aggregate: 'sum',
groupFooterTemplate: () => '(1) ${$this["sum"]} | (2) ${$this.UnitPrice.sum}',
groupTemplate: () => '(1) ${$this["sum"]} | (2) ${$this.sum}',
template: () => {
return '<span>col</span>'+
'<div>'+
'(1) ${$this["UnitPrice"]} | (2) ${$this["UnitPrice"]} | (3) ${$this.UnitPrice}'+
'</div>';
}}
];
log(obj) {
console.log(obj);
}
};
.customer-photo {
display: inline-block;
width: 32px;
height: 32px;
border-radius: 50%;
background-size: 32px 35px;
background-position: center center;
vertical-align: middle;
line-height: 32px;
box-shadow: inset 0 0 1px #999, inset 0 0 10px rgba(0,0,0,.2);
margin-left: 5px;
}
.customer-name {
display: inline-block;
vertical-align: middle;
line-height: 32px;
padding-left: 3px;
}
<!doctype html>
<html>
<head>
<title>Aurelia KendoUI bridge</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2016.1.226/styles/kendo.common.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2016.1.226/styles/kendo.rtl.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2016.1.226/styles/kendo.default.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2016.1.226/styles/kendo.mobile.all.min.css">
<script src="https://kendo.cdn.telerik.com/2016.1.226/js/jszip.min.js"></script>
</head>
<body aurelia-app="main">
<h1>Loading...</h1>
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.6/system.js"></script>
<script src="https://rawgit.com/aurelia-ui-toolkits/aurelia-kendoui-bundles/0.3.15/config2.js"></script>
<script>
System.import('aurelia-bootstrapper');
</script>
</body>
</html>
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.developmentLogging()
.plugin('aurelia-kendoui-bridge', kendo => kendo.pro());
aurelia.start().then(a => a.setRoot());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment