我已经设置了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;
}

10-06 07:55
查看更多