I am using Kendo ui grid:http://demos.telerik.com/kendo-ui/grid/index
I want to stop my ajax request from going on server side on page size change when "No records are available":
From Jayesh Goyani answer i have prevent sorting when "no records are available" like this:
$("#grid .k-grid-header .k-link").click(function (e) {
if ($("#grid").data("kendoGrid").dataSource.data().length == 0) {
e.stopPropagation();
}
});
So how to do the same things on page size change?
Note:I am using Script for kendo ui.
Please try with the below code snippet. As per my knowledge its very difficult to prevent ajax request so when no record exists in grid then i have disable the pagesize dropdownlist.
<!DOCTYPE html>
<html>
<head>
<title>Jayesh Goyani</title>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2015.2.902/styles/kendo.common-material.min.css" />
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2015.2.902/styles/kendo.material.min.css" />
<script src="https://kendo.cdn.telerik.com/2015.2.902/js/jquery.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2015.2.902/js/kendo.all.min.js"></script>
</head>
<body>
<div id="grid"></div>
<script src="http://demos.telerik.com/kendo-ui/content/shared/js/products.js"></script>
<script>
$(document).ready(function () {
products = null;
$("#grid").kendoGrid({
dataSource: {
data: products,
schema: {
model: {
fields: {
ProductName: { type: "string" },
UnitPrice: { type: "number" },
UnitsInStock: { type: "number" },
Discontinued: { type: "boolean" }
}
}
}
},
height: 550,
groupable: true,
sortable: true,
dataBound: onDataBound,
pageable: {
refresh: true,
pageSizes: true
},
columns: [
"ProductName",
{ field: "UnitPrice", title: "Unit Price", format: "{0:c}", width: "130px" },
{ field: "UnitsInStock", title: "Units In Stock", width: "130px" },
{ field: "Discontinued", width: "130px" }
]
});
$("#grid .k-grid-header .k-link").click(function (e) {
if ($("#grid").data("kendoGrid").dataSource.data().length == 0) {
e.stopPropagation();
}
});
});
function onDataBound(arg) {
if ($("#grid").data("kendoGrid").dataSource.data().length == 0) {
$(".k-grid-pager .k-dropdown").find('select').data("kendoDropDownList").readonly();
}
else {
$(".k-grid-pager .k-dropdown").find('select').data("kendoDropDownList").readonly(false);
}
}
</script>
</body>
</html>
Let me know if any concern.