2013-06-25 35 views
2

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

+0

这将有助于了解您的网格配置是什么样子。您是使用ASP MVC助手创建窗口小部件还是使用JavaScript创建它? – Brett

回答

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

这是一个围绕我的猜测,但我希望有一个解决方案,将包括使用内置的网格页脚。 列:[ {字段: “值”, 格式: “{0:C}”, footerTemplate: “#= kendo.toString(总和, 'C')#” } –