kendo网格中的列模板被覆盖

时间:2016-10-11 10:14:16

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

我在cshtml视图中有一个kendo网格,我正在尝试为Payments列设置一个自定义模板,这里是代码:

@model IEnumerable<Models.YearlyRow>

<div class="boxcenter">
    <div id="header">
        <h2>Title</h2>
    </div>
    <div id="kendo_grid">
    @(Html.Kendo()
    .Grid(Model)
    .Name("grid")
    .ToolBar(toolbar => toolbar.Excel())
    .Columns(columns =>
    {
        columns.Bound(c => c.Account.AccountName).Title("Account Name");
        columns.Bound(c => c.PlanName).Title("Plan Name");
        columns.Bound(c => c.Payments).Title("Payments").Template(
             @<text>
                <strong>@item.Payments.Count</strong>
             </text>
        );
    })
    .DataSource(datasource =>
        datasource.Ajax().ServerOperation(false)
    )
)
    </div>
</div>

这是YearlyRow模型:

public class YearlyRow
    {
        public Account Account { get; set; }
        public string PlanName { get; set; }
        public List<Payment> Payments { get; set; }
        public YearlyRow()
        {
            Payments = new List<Payment>();
        }
    }

“付款”列应以自定义方式显示所有尚未实施的付款记录,并且仅显示当前的付款计数。

问题是Count非常短暂地显示,然后由“[Object object]”替换,它似乎由Payments.ToString()返回。如何避免这种行为?我只是为了显示我在模板中指定的内容。

1 个答案:

答案 0 :(得分:1)

您正在使用Ajax binding,因此您需要client template

columns.Bound(c => c.Payments).Title("Payments")
       .ClientTemplate(@"<text><strong>@item.Payments.Count</strong></text>");