2016-10-11 121 views
0

我有CSHTML視圖劍道格,我想設置的付款欄自定義模板,這裏是代碼:柱模板被覆蓋

@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

您正在使用Ajax binding所以你需要一個client template

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