我已经设置了kendo ui网格,以从返回JSON的MVC操作中读取数据。由于成本原因,我使用的是Kendo的免费版本,而不是MVC专用版本。
问题在于,当页面加载并执行网格的初始填充时,它不会显示加载微调器。填充网格后,我转到另一页或对它显示的列进行排序。
如果设置网格的height参数,则会得到初始的微调器,但网格仅显示一行(应该显示20行)。
有谁知道为什么必须设置height参数?或在不设置高度的情况下使微调器正常工作的任何方法。
我的剑道Javascript Kode:
$("#grid").kendoGrid({
dataSource: new kendo.data.DataSource({
transport: {
read: url,
parameterMap: function (options) {
var result = {
pageSize: options.pageSize,
skip: options.skip,
take: options.take,
page: options.page,
};
if (options.sort) {
for (var i = 0; i < options.sort.length; i++) {
result["sort[" + i + "].field"] = options.sort[i].field;
result["sort[" + i + "].dir"] = options.sort[i].dir;
}
}
return result;
}
},
requestStart: function () {
//kendo.ui.progress($("#loading"), true); <-- this works on initial load, but gives two spinners on every page or sort change
},
requestEnd: function () {
//kendo.ui.progress($("#loading"), false);
},
pageSize: 20,
serverPaging: true,
serverSorting: true,
schema: {
total: "total",
data: "data"
},
}),
height: "100%", <-- I want to avoid this as it renders the grid way to small
sortable: true,
pageable: {
refresh: true,
pageSizes: true,
buttonCount: 5
},
columns: [
{
field: "PaymentRefId",
title: "Id"
},
{
field: "DueDate",
title: "Due Date"
},
{
field: "Credit",
title: "Amount"
},
{
field: "InvoiceGroupId",
title: " ",
sortable: false,
template: '<a href="/InvoiceGroup/InvoiceGroupDetails2/#: InvoiceGroupId #">See details</a>'
}
],
});
最佳答案
我有同样的问题。它实际上是在渲染微调器/进度条,但是由于网格内容区域最初没有高度,因此您看不到它。这对我有用。试一试:
// This forces the grids to have just al little height before the initial data is loaded.
// Without this the loading progress bar / spinner won't be shown.
.k-grid-content {
min-height: 200px;
}