2016-10-11 1 views
0

J'ai une grille de kendo en vue cshtml et je suis en train de définir un modèle personnalisé pour la colonne des paiements, voici le code:modèle de colonne dans la grille kendo est écrasée

@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> 

Et voici le modèle 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>(); 
     } 
    } 

la colonne paiements doit afficher tous les enregistrements de paiement de façon personnalisée pas encore mis en œuvre et est juste le comte de affiche paiement pour le moment.

Le problème est que le compte est affiché très brièvement, puis remplacé par "[objet objet]" qui semble être retourné par Payments.ToString(). Comment éviter ce comportement? Je viens d'afficher ce que j'ai spécifié dans le modèle.

Répondre

1

Vous utilisez Ajax binding si vous avez besoin d'un client template:

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