如何获得Kendo组页脚模板名称的自定义名称?

时间:2016-09-08 18:41:39

标签: javascript c# asp.net-mvc kendo-grid kendo-asp.net-mvc

我有以下代码用于KendoGrid:

<div class="grid-scrollable">
            <div>
                @(Html.Kendo().Grid<ViewModels.Payment.BhFormExpenseRRViewModel>()
                .Name("BHFormPATHRRGrid")
                .Events(e => e.DataBound("dataBoundpath"))
                .Events(e => e.Save("onBhFormpathModelGridSave"))
                .Events(e => e.Edit("onBhFormpathModelGridEdit"))
                .Columns(columns =>
                {
                    columns.Bound(p => p.Id).Hidden(true);
                    columns.Bound(p => p.ECId).Hidden(true);
                    columns.Bound(p => p.ExpenseCategory).ClientFooterTemplate("Total Billing Submitted")
                    .ClientGroupFooterTemplate("Total Expenses").EditorTemplateName("Decimal").Format("{0:c}");                 

                    columns.Group(g => g.Title("Current Month Expenses")
                        .Columns(a =>
                    {
                        a.Bound(c => c.ThisMonthPath).EditorTemplateName("Decimal").Format("{0:c}").ClientFooterTemplate("#=kendo.toString(sum,'C')#")
                    .ClientGroupFooterTemplate("#=kendo.toString(sum,'C')#");
                        a.Bound(c => c.ThisMonthMatch).EditorTemplateName("Decimal").Format("{0:c}").ClientFooterTemplate("#=kendo.toString(sum,'C')#")
                    .ClientGroupFooterTemplate("#=kendo.toString(sum,'C')#");

                    }));

                    columns.Group(g => g.Title("Reduced Monthly Expenses")
                        .Columns(a =>
                    {
                        a.Bound(c => c.ReduceExpensesBy).EditorTemplateName("Decimal").Format("{0:c}").ClientFooterTemplate("#=kendo.toString(sum,'C')#")
                        .ClientGroupFooterTemplate("#=kendo.toString(sum,'C')#");

                        a.Bound(c => c.CurrentMonthExpensesSubmitted).EditorTemplateName("Decimal").Title("AdjustedPathAmount").Format("{0:c}").ClientFooterTemplate("#=kendo.toString(sum,'C')#")
                        .ClientGroupFooterTemplate("#=kendo.toString(sum,'C')#");
                    }));

                    columns.Group(g => g.Title("Prior Month Expenses")
                        .Columns(a =>
                    {
                        a.Bound(c => c.PriorMonthMatch).Format("{0:c}").ClientFooterTemplate("#=kendo.toString(sum,'C')#")
                    .ClientGroupFooterTemplate("#=kendo.toString(sum,'C')#");
                        a.Bound(c => c.PriorMonthPath).Format("{0:c}").ClientFooterTemplate("#=kendo.toString(sum,'C')#")
                    .ClientGroupFooterTemplate("#=kendo.toString(sum,'C')#");
                    }));
                    columns.Group(g => g.Title("Cumulative Expenses YTD")
                        .Columns(a =>
                    {
                        a.Bound(c => c.YtdMonthMatch).Format("{0:c}").ClientFooterTemplate("#=kendo.toString(sum,'C')#")
                    .ClientGroupFooterTemplate("#=kendo.toString(sum,'C')#");
                        a.Bound(c => c.YtdMonthPath).Format("{0:c}").ClientFooterTemplate("#=kendo.toString(sum,'C')#")
                    .ClientGroupFooterTemplate("#=kendo.toString(sum,'C')#");
                    }));
                    columns.Command(command =>
                    {
                        command.Edit().HtmlAttributes(new { @class = "btn-primary k-grid-edit" });
                    }).Width(200);
                })
                .Editable(editable => editable.Mode(Kendo.Mvc.UI.GridEditMode.InLine))
                .Pageable(pageable => pageable.Refresh(true).PageSizes(true).ButtonCount(5))
                .Sortable()
                .Filterable(f => f.Operators(o => o.ForString(s => s.Clear()
                    .Contains("Contains")
                    .DoesNotContain("Does not contain")
                    .IsEqualTo("Is equal to")
                    .IsNotEqualTo("Is not equal to")
                    .StartsWith("Starts with")
                    .EndsWith("Ends with "))))
                .Selectable()
                .Resizable(resize => resize.Columns(true))

                .DataSource(dataSource => dataSource.Ajax().PageSize(20).Model(model => model.Id(p => p.ECId)).Model(model => model.Field(p => p.TotalProirExpensesBilled).Editable(false)).Model(model => model.Field(p => p.CurrentMonthExpensesSubmitted).Editable(false)).Model(model => model.Field(p => p.TotalExpensesYtd).Editable(false)).Model(model => model.Field(p => p.ExpenseCategory).Editable(false))
                .Model(model => model.Field(p => p.PriorMonthMatch).Editable(false)).Model(model => model.Field(p => p.PriorMonthPath).Editable(false)).Model(model => model.Field(p => p.YtdMonthMatch).Editable(false)).Model(model => model.Field(p => p.YtdMonthPath).Editable(false))
                .Aggregates(aggregates =>
                {

                    aggregates.Add(p => p.ThisMonthMatch).Sum();
                    aggregates.Add(p => p.ThisMonthPath).Sum();
                    aggregates.Add(p => p.PriorMonthMatch).Sum();
                    aggregates.Add(p => p.PriorMonthPath).Sum();
                    aggregates.Add(p => p.YtdMonthMatch).Sum();
                    aggregates.Add(p => p.YtdMonthPath).Sum();
                    aggregates.Add(p => p.ReduceExpensesBy).Sum();
                    aggregates.Add(p => p.CurrentMonthExpensesSubmitted).Sum();
                })

                .Update(update => update.Action("EditBHFormRR", "ReimbursementRequestProvider").Data("additionalInfoPath"))
                .Events(events => events.Error("errorpath"))
                .Group(groups => groups.Add(p => p.ExpenseTypeId))
                .Read(read => read.Action("BHFromExpenseGridRead", "ReimbursementRequestProvider", new { bhFormName = Model.BHFormsName, reimbursementEbsId = Model.ReimbursementEbsId, prrId = Model.PrrId, rrState = @ViewBag.RRStateRequest, serviceMonth = Model.ServiceMonth }))
                )
                )
            </div>
        </div>

我已将组页脚名称定义为:

.ClientGroupFooterTemplate("Total Expenses")

但不是这样,我想用不同的页脚名称命名每个和不同的组。

任何人都可以帮助我实现这一目标。 我的结果应该是这样的:

  1. 组1的页脚名称= abc
  2. 组2的页脚名称= def

1 个答案:

答案 0 :(得分:2)

我并不完全明白最终目标是什么。你想要一个聚合值的页脚和每个组的一个页脚?我不确定这是否可以从我在剑道论坛上看到的。如果它可以帮助你的情况,以便你可以显示接近你的情况,你可以使用以下三个例子

1

              columns.Group(g => g.Title("Current Month Expenses")
              .Columns(a =>
              {
                  a.Bound(c => c.Value).Width(200)
                      .ClientFooterTemplate("abs<div class = text-center>abc #=kendo.toString(sum,'C')#</div>");
                  a.Bound(c => c.ValueAdvance).Width(200)
                      .ClientFooterTemplate("def<div class = text-center>#=kendo.toString(sum,'C')#</div>");
              }));

Type of Group Title

2

              columns.Group(g => g.Title("Current Month Expenses")
              .Columns(a =>
              {
                  a.Bound(c => c.Value).Width(200)
                      .ClientFooterTemplate("<div>abs</div><hr><div class = text-center>abc #=kendo.toString(sum,'C')#</div>");
                  a.Bound(c => c.ValueAdvance).Width(200)
                      .ClientFooterTemplate("<div>&nbsp;</div><hr><div class = text-center>#=kendo.toString(sum,'C')#</div>");
              }));

enter image description here

3

              columns.Group(g => g.Title("Current Month Expenses")
              .Columns(a =>
              {
                  a.Bound(c => c.Value).Width(200)
                      .ClientFooterTemplate("<div class=text-center>abs</div><div class = text-center>abc #=kendo.toString(sum,'C')#</div>");
                  a.Bound(c => c.ValueAdvance).Width(200)
                      .ClientFooterTemplate("<div class=text-center>abs</div><div class = text-center>#=kendo.toString(sum,'C')#</div>");
              }));

enter image description here

第二种情况可能看起来更接近你想要的东西,我理解这不是最好的解决方案,但我希望如果有更好的方法没有出现它会有所帮助。