Skip to content

Instantly share code, notes, and snippets.

@johntom
Forked from gist-master/app.html
Last active February 23, 2017 12:03
Show Gist options
  • Save johntom/225e9563744d182b5d44ee7d7b35b846 to your computer and use it in GitHub Desktop.
Save johntom/225e9563744d182b5d44ee7d7b35b846 to your computer and use it in GitHub Desktop.
Grid: frozen columns
<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>
<h1>Forked frozed columns</h1>
<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-grid k-data-source.bind="datasource"-->
<!-- k-widget.bind="grid"-->
<!-- k-on-change.delegate="rowSelected($event.detail)"-->
<!-- k-sortable.bind="true"-->
<!-- k-reorderable.bind="true"-->
<!-- k-groupable.bind="true"-->
<!-- k-resizable.bind="true"-->
<!-- k-filterable.bind="true"-->
<!-- k-column-menu.bind="true"-->
<!-- k-pageable.bind="true">-->
<ak-col k-field="OrderID" k-title="Order ID" k-locked.bind="true" k-lockable.bind="false" k-width.bind="150"></ak-col>
<ak-col k-title="Web Link1" k-width="160px"
k-template="http://aurelia.io">
</ak-col>
<ak-col k-title="details" k-width.bind="150">
<ak-grid-command k-name="details" k-text="Details" k-click.call="details($event)"></ak-grid-command>
</ak-col>
<ak-col k-field="ShipCountry" k-title="Ship Country" k-width.bind="300"></ak-col>
<ak-col k-field="ShipCity" k-title="Ship City" k-width.bind="300"></ak-col>
<ak-col k-field="ShipName" k-title="Ship Name" k-locked.bind="true" k-width.bind="300"></ak-col>
<ak-col k-field="ShipAddress" k-lockable.bind="false" k-width.bind="400"></ak-col>
</ak-grid>
</template>
export class FrozenColumns {
constructor() {
this.datasource = {
type: 'odata',
transport: {
read: '//demos.telerik.com/kendo-ui/service/Northwind.svc/Orders'
},
schema: {
model: {
fields: {
OrderID: { type: 'number' },
ShipCountry: { type: 'string' },
ShipName: { type: 'string' },
ShipCity: { type: 'string' },
ShipAddress: { type: 'string' }
}
}
},
pageSize: 10
};
}
onDataBound(e) {
// alert('hi onDataBound')
let grid = e.sender;
kendo.jQuery('a[href*=\'#\']', grid.tbody).removeAttr('href');
}
details(e) {
alert(`Command '${e.data.commandName}' was executed`);
console.log(this);
let grid = this.grid;
// grid.clearSelection();
//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");
}
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.0.0-beta.1.0.6/config2.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