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