【问题标题】:Telerik MVC Grid - Displaying Client Footer Template only if row Count > 0Telerik MVC Grid - 仅在行数 > 0 时显示客户端页脚模板
【发布时间】:2011-10-27 13:17:59
【问题描述】:

我在我的 asp.net MVC3 应用程序中使用 Telerik 2011 Q2 MVC Grid。在我的一个页面中,我有一个网格,我试图在网格上显示页脚。 Grid 以 Ajax 模式绑定。这是我正在使用的代码

@(Html.Telerik().Grid<MatrixDetail>()
            .Name("tlkLocalityMatrixGrid")
            .DataBinding(db => db.Ajax().Select("_LocalityMatrix", "Matrix"))

            .Columns(col => {
                col.Bound(m => m.Name).Title("Locality/BloodGroup").Width(200)
                                      .Sortable(false);
                col.Bound(m => m.A_PositiveCount).Title("A+ve")
                                      .Sortable(false);
...

                col.Bound(m => m.Total).Title("Total").Width(100).Aggregate(aggr => aggr.Sum())
                                       .ClientFooterTemplate("<# if(Count > 0) { $.telerik.formatString('{0:n}', Sum); } #>")
                                      .Format("{0:n}");}))

从代码中可以看出,我正在尝试使用客户端页脚模板显示聚合(总计)。我的要求是仅当网格的行数大于 0 时才显示总计。否则页脚中的总计应为空白。所以我使用“Count”和“Sum”来实现功能。当我第一次加载网格时,它是空的,并且“总计”页脚按预期显示为空白。然而,在用户进行一些更改后,我用数据重新加载网格,但 JQuery 抱怨 “ReferenceError: Count is not defined”

如何让 ClientFooterTemplate 仅在网格有一些行时才显示页脚(在本例中为“Total”)。如果我只在 ClientFooterTemplate 中指定“&lt;#= Sum #&gt;”,那么如果 Grid 没有行,Footer 仍然显示 0。

【问题讨论】:

    标签: asp.net-mvc telerik telerik-grid telerik-mvc


    【解决方案1】:

    我遇到了一些问题。首先,需要在 col.Bound(m => m.Total).Title("Total").Width(100).Aggregate(aggr => aggr.Sum()) 处指定 Count 聚合。因此,将上述行更改为

    col.Bound(m => m.Total).Title("Total").Width(100).Aggregate(aggr => aggr.Sum().Count()) 
    

    我在可访问的 javascript 中有 Count 变量。其次,客户端页脚模板需要如下所示。

    .ClientFooterTemplate("<# if (Count > 0) {#>" + "<#= $.telerik.formatString('{0:n}', Sum) #>" + "<# } #>")
    

    一切都很好。

    问候, 涅槃。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多