2014-03-06 196 views
2

我綁定了12個圓柱(12個月)的劍道網格,我想最後一列將是所有12個月(總共一年)的聚合.. 我有這樣的:劍道網格聚合列

@(Html.Kendo().Grid<WebAnalise.Models.map_sel_fabr_prod>() 
.Name("grid") 
.Columns(columns => 
{ 
    columns.Bound(p => p.nameFabr).Visible(true).Width(50).Title("Fabr"); 
    columns.Bound(p => p.nameProd).Width(100).Title("Prod"); 
    columns.Bound(p => p.tot01).Width(30).Title("Jan"); 
    columns.Bound(p => p.tot02).Width(30).Title("Fev"); 
    columns.Bound(p => p.tot03).Width(30).Title("Mar"); 
    columns.Bound(p => p.tot04).Width(30).Title("Abr"); 
    columns.Bound(p => p.tot05).Width(30).Title("Mai"); 
    columns.Bound(p => p.tot06).Width(30).Title("Jun"); 
    columns.Bound(p => p.tot07).Width(30).Title("Jul"); 
    columns.Bound(p => p.tot08).Width(30).Title("Ago"); 
    columns.Bound(p => p.tot09).Width(30).Title("Set"); 
    columns.Bound(p => p.tot10).Width(30).Title("Out"); 
    columns.Bound(p => p.tot11).Width(30).Title("Nov"); 
    columns.Bound(p => p.tot12).Width(30).Title("Dez"); 

//我想在這裏添加新的列!像這樣的東西,但聚合! (tot01 + tot02 + tot03 ... + tot12)!!不僅從一列中獲得價值:

columns.Bound(p => p.tot01).Width(30).Title("TOT"); 

}) 

任何人都可以幫忙嗎?

回答

0

您是否使用LinQ或ADO進行數據訪問???無論是它並不重要,但您可以使用LINQ查詢僅返回總和或存儲過程和領帶總和模型類的屬性

+0

LINQ,我米試圖解決這個與劍道的方法..但在模型中創建一個屬性像你說的..解決問題:) TKS! –

2

試試這個

  • 首先要確定您的模型列是十進制的
  • 如果您想使用頁腳然後添加客戶端頁腳,請在網格末尾添加「總計列」。
  • 添加骨料如
  • 添加JavaScript
  • 最後總列將動態總和給出列,並且將顯示在頁腳總計爲好。

** * ** * ** * ** * **電網* ** * ** * *

@(Html.Kendo().Grid<WebAnalise.Models.map_sel_fabr_prod>() 
    .Name("grid") 
    .Columns(columns => 
    { 
     columns.Bound(p => p.tot11).Width(30).Title("Nov"); 
     columns.Bound(p => p.tot12).Width(30).Title("Dez"); 
     columns.Bound(c => c.Total).Title("Total") 
     .ClientTemplate("#= kendo.format('{0:c}',Total) #") 
     .ClientFooterTemplate("<div>Grand Total: #= kendo.format('{0:c}',sum) #</div>"); 
    } 
    .DataSource(dataSource => dataSource 
      .Ajax() 
      .Aggregates(aggregates => 
      { 

      aggregates.Add(p => p.Total).Sum();       
      }) 
      .PageSize(20) 
      .Events(events => events.Error("error_handler")) 
      .ServerOperation(false)      
      .Events(e=>e.Edit("onEdit").Save("onSave")) 
     ) 

** * ** * ** *的Javascript* ** * ** * ** * ** * * * * ***

function onEdit(e) 
     { 

      var indexCell = e.container.context.cellIndex;   
      if (typeof indexCell != "undefined") {    

       var input = e.container.find(".k-input"); 
       input.blur(function() { 

        e.model.set("Total", (e.model.tot01 * e.model.tot02 *e.model.tot03); 


       }); 

       var texbox = e.container.find(".text-box"); 
       texbox.change(function() {      
        e.model.set("Total", (e.model.tot01 * e.model.tot02 *e.model.tot03); 

       });    
      }   

     } 

     function onSave(e) 
     { 
      //update the aggregate columns 
      var dataSource = this.dataSource; 
      e.model.one("change", function() { 
       dataSource.one("change", function() { 
        dataSource.aggregates().Total.sum; 
       }); 
       dataSource.fetch(); 
      }); 

     } 

問候

Shaz