Skip to content

Instantly share code, notes, and snippets.

@johntom
Forked from JeroenVinke/app.html
Last active February 22, 2017 15:25
Show Gist options
  • Save johntom/307d219a358b900c4a44ea52b558ebbd to your computer and use it in GitHub Desktop.
Save johntom/307d219a358b900c4a44ea52b558ebbd to your computer and use it in GitHub Desktop.
Grid: command
<template>
<require from="aurelia-kendoui-bridge/grid/grid"></require>
<require from="aurelia-kendoui-bridge/grid/col"></require>
<require from="aurelia-kendoui-bridge/grid/grid-command"></require>
<!--<button type="button" class="k-button k-primary" ak-button k-on-click.delegate="clearSelection()">Clear</button>-->
<ak-grid k-data-source.bind="datasource" id="grid" k-widget.bind="grid"
k-on-data-bound.delegate="onDataBound($event.detail)"
k-sortable.bind="{ mode: 'multiple', allowUnsort: 'true'}"
k-filterable.bind="{ mode: 'row' }" k-editable="inline" k-reorderable.bind="true" k-groupable.bind="true"
k-resizable.bind="true" k-on-change.delegate="rowSelected($event.detail)" k-column-menu.bind="true"
k-selectable="[cell]" k-pageable.bind="pageable">
<ak-col k-title="OrderId" k-field="OrderID"></ak-col>
<ak-col k-title="Freight" k-field="Freight"></ak-col>
<ak-col k-title="ShipName" k-field="ShipName"></ak-col>
<ak-col k-title="ShipCity" k-field="ShipCity"></ak-col>
<ak-col k-title="Web Link1" k-width="160px"
k-template="http://aurelia.io">
</ak-col>
<!--<ak-col k-title="Web Link2" k-width="160px"-->
<!--k-template="http://www.pdf995.com/samples/pdf.pdf">-->
<!--</ak-col>-->
<ak-col>
<ak-grid-command k-name="details" k-text="Details" k-click.call="details($event)"></ak-grid-command>
</ak-col>
</ak-grid>
</template>
export class BindingToRemoteData {
constructor() {
this.datasource = {
type: 'odata',
transport: {
read: '//demos.telerik.com/kendo-ui/service/Northwind.svc/Orders'
},
schema: {
model: {
fields: {
OrderID: { type: 'number' },
Freight: { type: 'number' },
ShipName: { type: 'string' },
OrderDate: { type: 'date' },
ShipCity: { type: 'string' }
}
}
},
pageSize: 9,
serverPaging: true,
serverFiltering: true,
serverSorting: true
};
}
// remove the href="#" from anchors
// http://www.telerik.com/forums/grid-command-and-href=#rlBCjx-3y0OmKjBB0AfSEw
onDataBound(e) {
let grid = e.sender;
kendo.jQuery('a[href*=\'#\']', grid.tbody).removeAttr('href');
}
details(e) {
alert(`Command '${e.data.commandName}' was executed`);
console.log(this);
// for the future
// let grid = this.grid;
// console.log('grid',grid );
// let selectedCell = grid.select();
// // let cc = selectedCell.text();
// console.log('selectedCell',selectedCell );
// var targetRow = selectedCell.parent();
// console.log('targetRow',targetRow );
// var oldSelected = grid.tbody.find("tr.k-state-selected");
// console.log('oldSelected',oldSelected );
// if(oldSelected){
// oldSelected.removeClass("k-state-selected");
// }
// targetRow.addClass("k-state-selected");
}
rowSelected(e) {
// this is cell selection and not row
let grid = this.grid;
console.log('grid',grid );
let selectedCell = grid.select();
console.log('selectedCell',selectedCell );
let cc = selectedCell.text();
var targetRow = selectedCell.parent();
console.log('targetRow',targetRow );
var oldSelected = grid.tbody.find("tr.k-state-selected");
console.log('oldSelected',oldSelected );
if(oldSelected){
oldSelected.removeClass("k-state-selected");
}
// option 1
// grid.select(targetRow);
//option 2
targetRow.addClass("k-state-selected");
if (cc === 'http://aurelia.io') {
window.open(cc, '_blank');
} else {
if (cc === 'http://www.pdf995.com/samples/pdf.pdf') {
//window.open(selected);
// grid.select($("tr")[5]);
}
}
}
}
<!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.2.714/styles/kendo.common.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2016.2.714/styles/kendo.rtl.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2016.2.714/styles/kendo.default.min.css">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2016.2.714/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/2016.2.714/js/jquery.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2016.2.714/js/jszip.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2016.2.714/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.2.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