【问题标题】:Kendo Grid, Virtual Scrolling, Page Size and Aggregates剑道网格、虚拟滚动、页面大小和聚合
【发布时间】:2013-06-25 13:01:45
【问题描述】:

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

【问题讨论】:

  • 了解您的网格配置是什么样子会有所帮助。您是使用 ASP MVC 帮助程序创建小部件还是在 javascript 中创建它?

标签: c# javascript .net kendo-ui


【解决方案1】:

使用 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>

如果有任何问题,请告诉我。

【讨论】:

  • 我猜这是一种解决方法,但我希望有一个解决方案包括使用内置的网格页脚。列:[ {字段:“值”,格式:“{0:C}”,footerTemplate:“#=kendo.toString(sum, 'C')#”}
猜你喜欢
  • 2012-12-31
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
相关资源
最近更新 更多