Telerik MVC网格 - 仅当行计数>显示客户端页脚模板时0

时间:2011-10-27 13:17:59

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

我在我的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}");}))

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

如果网格有一些行,我如何让ClientFooterTemplate显示页脚(在本例中为“Total”)。如果我只在ClientFooterTemplate中指定“<#= Sum #>”,那么如果网格没有行,则页脚仍会显示0.

1 个答案:

答案 0 :(得分:4)

我遇到了一些问题。首先,需要在col.Bound(m =&gt; m.Total)指定Count聚合.Title(“Total”)。Width(100).Aggregate(aggr =&gt; aggr.Sum())。所以将上面一行改为

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) #>" + "<# } #>")

这一切都运作良好。

的问候, NIRVAN。