kendo 网格中的列模板被覆盖

Column template in kendo grid gets overwritten

我在 cshtml 视图中有一个 kendo 网格,我正在尝试为“付款”列设置自定义模板,代码如下:

@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()返回的。如何避免这种行为?我只是为了显示我在模板中指定的内容。

您正在使用 Ajax binding so you need a client template:

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