Kendo UI MVC Grid根据列值显示页脚中的聚合数据

时间:2015-04-24 16:11:48

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

我有一个有两列感兴趣的网格:Dollar Amount和Status。 对于该行的金额

,状态可以是已接受,待处理或已拒绝

我想实现汇总功能,以显示待定的总金额和接受的总金额。

这是我的网格

 @(Html.Kendo().Grid(Model)
          .Name("Grid")
          .DataSource(dataSource => dataSource
              .Ajax()
              .Aggregates(aggregates =>
              {
                  aggregates.Add(p => p.AmountRequested).Sum();
              })
              .Read(read => read.Action("Applications_Read", "MyGrid"))
          )
          .Columns(columns =>
          {
              columns.Bound(c => c.RequestingOrg).Width(150);
              columns.Bound(c => c.Telephone).Width(150);
              columns.Bound(c => c.Email).Width(150);
              columns.Bound(c => c.ContactName).Width(150);
              columns.Bound(c => c.ContactTel).Width(150);
              columns.Bound(c => c.AmountRequested).Width(150)
                  .Format("{0:C}")
                  .ClientFooterTemplate("<div> Pending: #= sum#</div><div>Approved: #= sum#</div>");
              columns.Bound(c => c.TotalGoal).Width(150)
                  .Format("{0:C}");
              columns.Bound(c => c.Sponsor).Width(150);
              columns.Bound(c => c.Status)
                  .Filterable((filterable => filterable.UI("statusFilter")))
                  .Width(150);
          })
          //.Scrollable(s => s.Enabled(true).Height("auto"))
          .Pageable()
          .Sortable()              
          .Resizable(resize => resize.Columns(true))
          .Selectable(selectable => selectable.Mode(GridSelectionMode.Single))
          .HtmlAttributes(new {style = "height: 100%;"})
          .Events(events => events.Change("GetSelectedRow"))
          .Filterable(filterable => filterable
            .Extra(false)
            .Operators(operators => operators
                .ForString(str => str.Clear()
                    .IsEqualTo("Is equal to")
                ))
          )
    )

如何在ClientFooterTemplate中指定根据另一列的值计算总和?

1 个答案:

答案 0 :(得分:1)

您可以在模板中调用JS函数并在其中进行处理。

.ClientFooterTemplate("<div> Pending: #= computeSumPending() #</div><div>Approved: #= computeSumApproved()#</div>");

在此处提及SO中类似问题的解决方案 - use the plain password encoder