Отображение внешних данных в сетке Kendo UI

Получил первый проект базы данных MVC4, Entity Framework с пользовательским интерфейсом Kendo.

Моя модель, которую я показываю в сетке, выглядит следующим образом:

public partial class RuleEntry
{
    public RuleEntry()
    {
        this.RuleEntriesCases = new HashSet<RuleEntriesCas>();
    }
    [Key]
    public int ID { get; set; }
    public string Country { get; set; }
    public Nullable<int> Family { get; set; }
    public Nullable<int> IP { get; set; }
    public string RuleKey { get; set; }
    public Nullable<int> Status { get; set; }
    public string Title { get; set; }

    public virtual Country Country1 { get; set; }
    public virtual Family Family1 { get; set; }
    public virtual IP IP1 { get; set; }
    public virtual RuleStatus RuleStatus { get; set; }
    public virtual ICollection<RuleEntriesCas> RuleEntriesCases { get; set; }
}

Атрибут Страна может быть "SE" и является внешним ключом к таблице "Страна", которая будет содержать имя "Швеция". Модель Country выглядит так:

public partial class Country
{
    public Country()
    {
        this.RuleEntries = new HashSet<RuleEntry>();
    }
    [Key]
    public string Code { get; set; }
    public string Name { get; set; }

    public virtual ICollection<RuleEntry> RuleEntries { get; set; }


}

Мне нужна сетка со всеми данными RuleEntry, но с соответствующими именами внешних ключей, на данный момент отображается только ключ. Мой код сетки выглядит следующим образом:

@(Html.Kendo().Grid(Model)    
.Name("Grid")
.Columns(columns =>
{
    columns.Bound(p => p.Country);
    columns.Bound(p => p.Family);
    columns.Bound(p => p.IP);
    columns.Bound(p => p.RuleKey);
    columns.Bound(p => p.Status);
    columns.Bound(p => p.Title);

})
.Groupable()
.Sortable()
.Scrollable(s => s.Height("auto"))
.Filterable()
.ColumnMenu())

Как это сделать? В модели, контроллере или представлении?

Спасибо


person Oskar Eriksson    schedule 08.04.2013    source источник


Ответы (1)


В классе RuleEntry добавьте атрибут ForeignKey для Country1, как показано ниже:

[ForeignKey("Country")]
public virtual Country Country1 { get; set; }

В вашей сетке используйте columns.Bound(p => p.Country1.Name);

person HM Chan    schedule 08.04.2013
comment
Спасибо! Работает как шарм :) - person Oskar Eriksson; 08.04.2013