在KendoUI Grid MVC中对计算的未绑定列求和

时间:2015-03-03 11:03:14

标签: kendo-ui kendo-grid kendo-asp.net-mvc

我有一个KendoUI Grid,我需要在页脚中显示几个列的总和。 由于Items列已绑定,这似乎完美无缺。

我还有一个项目总计的净值,但我无法使聚合函数起作用。是否可以将计算列相加?

 columns.Bound(m => m.Items).Format("{0:n2}")
.HtmlAttributes(new { @class = "items" }).Title("Units")
.ClientFooterTemplate("#= kendo.format('{0:n2}', sum) #");
 columns.Template(p => { })
.ClientTemplate("#= kendo.toString((Items * 12) * NetPoundsPerItem, 'n2') #")
.Title("Total Net £s for Items")
.FooterTemplate("#= kendo.tostring(sum, \"n2\") #");

1 个答案:

答案 0 :(得分:0)

因为这是一个未绑定的列,您需要手动跟踪您的数字,然后将您的总和放在聚合列中。使用页脚模板

  columns: [
        { field: "Cost", width: 120 }, footertemplate: "<div id='total'> Total : $0.00 </div> }, 
    { field: "Quanity", title: "Quanity", width: 40}]

使用javascript计算总和,然后使用jquery进行设置。

 //get the correct grid Kendo Grid
 var grid = $("#grid").data("kendoGrid");

 //get the data
var data = grid.dataSource.view();

var FinalTotal = 0;

// now iterate through each cell 
  data.forEach(function (entry) {
       FinalTotal += entry["Quanitiy"] * entry["Price"];
  }
// set the aggregate template div
    $('#total').text("Total: " + kendo.toString(FinalTotal, 'C'));