剑道网格,虚拟滚动,页面大小和聚合

Kendo Grid, Virtual Scrolling, Page Size and Aggregates

本文关键字:网格 虚拟 滚动      更新时间:2023-09-26

当我为具有用页面大小定义的数据源的剑道网格打开虚拟滚动时,当我滚动并进行虚拟分页时,它会更改聚合页脚模板中的总计,以匹配页面大小中的总计。最初创建栅格时,这些值是正确的。有没有一种方法可以锁定这些聚合值,这样当虚拟分页发生时它们就不会改变?

使用MVC

请尝试使用以下链接。http://developerom.blogspot.in/2012/12/how-to-use-aggregate-function-in-kendo.html

如果有任何顾虑,请告诉我。

使用Jquery

<div id="grid">
</div>
<script>

function onDataBound(arg) {
    var UnitPrice = 0; // sum
    var UnitsOnOrder = 0; //average
    var total = arg.sender.dataSource._data.length; // total
    for (var i = 0; i < total; i++) {
        UnitPrice += parseInt(arg.sender.dataSource._data[i].UnitPrice);
        UnitsOnOrder += parseInt(arg.sender.dataSource._data[i].UnitsOnOrder);
    }
    $("#spanProductNamefooter").html('Total count: '+total);
    $("#spanUnitPricefooter").html('Sum: '+UnitPrice);
    $("#spanUnitsOnOrderfooter").html('average: '+parseInt(UnitsOnOrder/total));
}
function onDataBinding(arg) {
}
$(document).ready(function () {
    $("#grid").kendoGrid({
        dataSource: {
            type: "odata",
            transport: {
                read: "http://demos.kendoui.com/service/Northwind.svc/Products",
                dataType: "jsonp",
            },
            schema: {
                model: {
                    fields: {
                        UnitsInStock: { type: "number" },
                        ProductName: { type: "string" },
                        UnitPrice: { type: "number" },
                        UnitsOnOrder: { type: "number" },
                        UnitsInStock: { type: "number" }
                    }
                }
            },
            pageSize: 7,
            aggregate: [{ field: "ProductName", aggregate: "count" },
                                      { field: "UnitPrice", aggregate: "sum" },
                                      { field: "UnitsOnOrder", aggregate: "average" },
                                      { field: "UnitsInStock", aggregate: "min" },
                                      { field: "UnitsInStock", aggregate: "max"}]
        },
        sortable: true,
        height: 430,
        dataBound: onDataBound,
        dataBinding: onDataBinding,
        scrollable: {
            virtual: true
        },
        columns: [
                        { field: "ProductName", title: "Product Name", footerTemplate: "<span id='spanProductNamefooter'></span>"},
                        { field: "UnitPrice", title: "Unit Price",footerTemplate: "<span id='spanUnitPricefooter'></span>" },
                        { field: "UnitsOnOrder", title: "Units On Order", footerTemplate: "<span id='spanUnitsOnOrderfooter'></span>"},
                        { field: "UnitsInStock", title: "Units In Stock"}
                    ]
    });
});
</script>

如果有任何顾虑,请告诉我。