kendo-grid-scroll
Version:
Program grid scroll for kendo-ui library. Support virtual mode for grid.
131 lines (121 loc) • 3.98 kB
JavaScript
$(document).ready(function() {
$grid = $('#grid');
var kendoGridScroll;
var createLocalGrid = function() {
generatePeople(830, function(data) {
var initStart;
var renderStart;
setTimeout(function() {
initStart = new Date();
$("#grid").kendoGrid({
dataSource: {
data: data,
pageSize: 20
},
height: 543,
selectable: true,
scrollable: {
virtual: true
},
pageable: {
info: true,
numeric: false,
previousNext: false
},
columns: [{
field: "Id",
title: "ID",
width: "110px"
}, {
field: "FirstName",
title: "First Name",
width: "130px"
}, {
field: "LastName",
title: "Last Name",
width: "130px"
}, {
field: "City",
title: "City",
width: "130px"
}, {
field: "Title"
}]
});
initEnd = new Date();
kendoGridScroll = new KendoGridScroll.Model($("#grid"), function(grid, row) {
grid.select(row);
});
});
});
};
createLocalGrid();
var createRemoteGrid = function() {
$("#grid").kendoGrid({
dataSource: {
type: "odata",
serverPaging: true,
serverSorting: true,
pageSize: 100,
transport: {
read: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Orders"
}
},
height: 543,
selectable: true,
scrollable: {
virtual: true
},
sortable: true,
columns: [{
field: "OrderID",
title: "Order ID",
width: 110
}, {
field: "CustomerID",
title: "Customer ID",
width: 130
}, {
field: "ShipName",
title: "Ship Name",
width: 190
}, {
field: "ShipAddress",
title: "Ship Address"
}, {
field: "ShipCity",
title: "Ship City",
width: 130
}, {
field: "ShipCountry",
title: "Ship Country",
width: 130
}]
});
kendoGridScroll = new KendoGridScroll.Model($("#grid"), function(grid, row) {
grid.select(row);
});
};
var selectRow = function(e) {
kendoGridScroll.scrollTo($("#selectRow").val());
};
var changeDataSource = function(e) {
kendoGridScroll.destroy();
$('.source').removeClass('k-primary');
$(this).addClass('k-primary');
$grid.empty();
if ($(this).attr('id') === "localDataSource") {
createLocalGrid();
} else {
createRemoteGrid();
}
};
$(".selectRow").click(selectRow);
$("#selectRow").keypress(function(e) {
if (e.which == 13) {
selectRow(e);
}
});
$('#localDataSource').click(changeDataSource);
$('#remoteDataSource').click(changeDataSource);
});