【问题标题】:Column template in kendo grid gets overwritten剑道网格中的列模板被覆盖
【发布时间】:2016-10-11 10:14:16
【问题描述】:

我在 cshtml 视图中有一个剑道网格,我正在尝试为 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() 返回的。如何避免这种行为?我只是为了显示我在模板中指定的内容。

【问题讨论】:

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


    【解决方案1】:

    你正在使用Ajax binding,所以你需要一个client template

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多