簡體   English   中英

劍道網格聚合列

[英]Kendo grid aggregate column

我用12列(12個月)綁定一個Kendo網格,我想要最后一列將是所有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");

})

有人可以幫忙嗎?

嘗試這個

  • 首先確保您的模型列為十進制
  • 如果要使用頁腳,則將總計列添加到網格的末尾,然后添加客戶端頁腳。
  • 如圖所示添加聚合
  • 添加JavaScript
  • 最后,total列將動態地給定列的總和,並且還將在頁腳中顯示總計。

** * ** * ** * ** * ** 網格 * ** * ** * *

 @(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

您可以使用Kendo UI Grid的內置聚合功能,如本演示所示:

http://demos.telerik.com/kendo-ui/web/grid/aggregates.html

您可以在最后一列的頁腳模板中顯示匯總信息(如演示中所示)

您是使用LinQ還是ADO進行數據訪問??? 無論是什么都沒關系,但是您可以使用LinQ查詢或存儲過程返回總和,並將總和綁定到模型類的屬性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM