Skip to content

Instantly share code, notes, and snippets.

@JeroenVinke
Last active April 6, 2020 18:05
Show Gist options
  • Save JeroenVinke/af14d0b858609c497fd31919139a3887 to your computer and use it in GitHub Desktop.
Save JeroenVinke/af14d0b858609c497fd31919139a3887 to your computer and use it in GitHub Desktop.
Grid: Grouping
<template>
<require from="aurelia-kendoui-bridge/grid/grid"></require>
<require from="aurelia-kendoui-bridge/grid/col"></require>
<require from="aurelia-kendoui-bridge/common/template"></require>
<ak-grid k-data-source.bind="datasource" k-pageable.bind="pageable" k-sortable.bind="true" id="grid" >
<!--k-columns.bind="columns">-->
<ak-col k-title="Product">
<ak-col k-title="Product Name" k-field="ProductName" >
<ak-template for="groupFooterTemplate" kendo-template.bind="true">
Group Count: ${ProductName.count}
</ak-template>
<ak-template for="footerTemplate" kendo-template.bind="true">
Total Count: ${count}
</ak-template>
</ak-col>
<ak-col k-title="Unit Price" k-field="UnitPrice"></ak-col>
</ak-col>
</ak-col>
<ak-col k-title="Units On Order" k-field="UnitsOnOrder">
<ak-template for="footerTemplate" kendo-template.bind="true">
Average: ${average}
</ak-template>
<ak-template for="groupFooterTemplate" kendo-template.bind="true">
Average: ${UnitsOnOrder.average}
</ak-template>
</ak-col>
<ak-col k-title="Units In Stock" k-field="UnitsInStock">
<ak-template for="groupHeaderTemplate" kendo-template.bind="true">
In Stock: ${aggregates.UnitsInStock.count}
</ak-template>
</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: {
model: {
fields: {
ProductName: { type: "string" },
UnitPrice: { type: "number" },
UnitsOnOrder: { type: "number" },
UnitsInStock: { type: "number" },
}
}
},
pageSize: 10,
aggregate: [
{ field: "ProductName", aggregate: "count" },
{ field: "UnitPrice", aggregate: "sum" },
{ field: "UnitsOnOrder", aggregate: "average" },
{ field: "UnitsInStock", aggregate: "min" },
{ field: "UnitsInStock", aggregate: "max" }
]
};
columns = [
{ title: "Master 1", columns: [
{ field: "ProductName", title: "Product Name", footerTemplate: "Total Count: #=count#", groupFooterTemplate: "Count: #=count#" },
// { field: "UnitPrice", title: "Unit Price", groupHeaderColumnTemplate: "Sum: #=sum#" }]},
{ field: "UnitPrice", title: "Unit Price", groupHeaderColumnTemplate: (a) => console.log(a) }]},
{ field: "UnitsOnOrder", title: "Units On Order", footerTemplate: "Average: #=average#", groupFooterTemplate: "Average: #=average#" },
{ field: "UnitsInStock", title: "Units In Stock", footerTemplate: "<div>Min: #= min #</div><div>Max: #= max #</div>", groupHeaderTemplate: "Units In Stock: #= value # (Count: #= count#)" }
];
test(a) {
console.log(a);
}
};
.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/2020.1.219/styles/kendo.common.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.1.219/styles/kendo.rtl.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.1.219/styles/kendo.default.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.1.219/styles/kendo.mobile.all.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.4.0/bluebird.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/1.2.1/chroma.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2020.1.219/js/jquery.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2020.1.219/js/jszip.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2020.1.219/js/kendo.all.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/1.10.0/config2.js"></script>
<script>
System.import('aurelia-bootstrapper');
</script>
</body>
</html>
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.developmentLogging()
.plugin('aurelia-kendoui-bridge');
aurelia.start().then(a => a.setRoot());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment