我在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()返回。如何避免这种行为?我只是为了显示我在模板中指定的内容。
答案 0 :(得分:1)
您正在使用Ajax binding,因此您需要client template:
columns.Bound(c => c.Payments).Title("Payments")
.ClientTemplate(@"<text><strong>@item.Payments.Count</strong></text>");