Telerik网格:使用Ajax绑定检索行计数

jpr*_*ova 1 ajax asp.net-mvc telerik

如何在Telerik ASP.Net MVC网格中使用Ajax绑定访问网格行计数?我需要在页脚中显示总数,请参阅下面的代码段.总计必须在插入和删除时更新.

使用服务器绑定时,有@ Model.Count().如何使用Ajax绑定执行相同的操作?

谢谢!

    @{
    Html.Telerik()
        .Grid<ContractMonth>()
        .Name("contractMonthGrid")
        .DataBinding(dataBinding => dataBinding
            .Ajax()
            .Select("_AjaxBinding", "ContractMonth")
            .Insert("_AjaxInsert", "ContractMonth")
            .Delete("_AjaxDelete", "ContractMonth")
            )
        .DataKeys(keys => keys.Add(c => c.Id))
        .ToolBar(commands => commands.Insert())
        .Columns(columns =>
        {
            columns.Bound(o => o.StartDate).EditorTemplateName("Date").FooterTemplate(@<text>@Model.Count()</text>);
Run Code Online (Sandbox Code Playgroud)

nem*_*esv 5

Telerik MVC网格支持服务器和Ajax聚合:

支持以下聚合:

  • 平均
  • 计数
  • 马克斯

要指定列的聚合,请使用Aggregates方法

所以在你的样本中:

.Columns(columns =>
    {
        columns.Bound(o => o.StartDate)
               .EditorTemplateName("Date")
               .Aggregate(aggregates => aggregates.Count())
               .FooterTemplate(@<text>@item.Count</text>)
               .ClientFooterTemplate("<#= Count #>");
    }
Run Code Online (Sandbox Code Playgroud)

如果您需要在网格"外部"的行数,您可以使用网格的客户端API:

<script type="text/javascript">
$(function() {
    var totalRows = $("#contractMonthGrid").data("tGrid").total;
    //do something with totalRows 
});
</script>
Run Code Online (Sandbox Code Playgroud)