Skip to content

Instantly share code, notes, and snippets.

@adriatic
Last active July 19, 2016 18:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save adriatic/bbcb2cbf2a2db6edd7adab2054c3779a to your computer and use it in GitHub Desktop.
Save adriatic/bbcb2cbf2a2db6edd7adab2054c3779a to your computer and use it in GitHub Desktop.
Autocomplete: virtualization
<template>
<div id="example">
<div class="demo-section k-content">
<h4>Search for shipping name</h4>
<ak-autocomplete k-data-source.bind="datasource"
k-virtual.bind="virtual"
k-data-text-field="ShipName"
k-height.bind="520">
<ak-template>
<span class="order-id">${OrderID}</span>
${ShipName}, ${ShipCountry}
</ak-template>
<input style="width: 100%;" />
</ak-autocomplete>
<div class="demo-hint">Hint: type "an"</div>
</div>
</div>
</template>
export class Virtualization {
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: 80,
serverPaging: true,
serverFiltering: true
};
constructor() {
this.virtual = {
itemHeight: 26,
valueMapper: (options) => {
$.ajax({
url: '//demos.telerik.com/kendo-ui/service/Orders/ValueMapper',
type: 'GET',
dataType: 'jsonp',
data: this.convertValues(options.value),
success: function(data) {
options.success(data);
}
});
}
};
}
convertValues(value) {
let data = {};
value = $.isArray(value) ? value : [value];
for (let idx = 0; idx < value.length; idx++) {
data['values[' + idx + ']'] = value[idx];
}
return data;
}
}
<!doctype html>
<html>
<head>
<title>Aurelia</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.5/config2.js"></script>
<!--<script src="./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