2015-04-28 7 views
1

У меня есть проблемы с перемещением из таблицы в другую в моей сетке Kendo.Просмотр внешнего ключа в сетке пользовательского интерфейса Kendo

В моей сетке есть столбец, который является идентификатором, и я, конечно, предпочитаю отображать имя вместо этого. Чтобы достичь этого, мне нужно зайти в таблицу языков.

Вот мой код:

Модель:

public DbSet<UserProfile> UserProfiles { get; set; } 
    public DbSet<Language> Language { get; set; } 
    public DbSet<NoteForm> Note { get; set; } 

[Table("Language")] 
public class Language 
{ 
    public string lang { get; set; } 

    [Key] 
    public int id { get; set; } 
} 
[Table("note")] 

public class NoteForm 
{ 
    [Required] 
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] 
    [Display(Name = "Title")] 
    public string Title { get; set; } 

    [Required] 
    [Display(Name = "Text")] 
    public string Text { get; set; } 

    [Required] 
    [Display(Name = "Language")] 
    [ForeignKey("Language")] 
    public int languageId { get; set; } 

    [Key] 
    public int id { get; set; } 

    public int userId { get; set; } 

} 

Вид:

@(Html.Kendo().Grid<DevelopmentNotesProject.Models.NoteForm>() 
.Name("grid") 
.Columns(columns => 
{ 
    columns.Bound(c => c.Title).Width(200).ClientTemplate(string.Format("{0}...", "#= formatter(Title) #")); 
    columns.Bound(c => c.Text).Width(450).ClientTemplate(string.Format("{0}...", "#= formatter(Text) #")); 
    columns.ForeignKey(p => p.LanguageId, (System.Collections.IEnumerable)ViewData["Language"], "id", "lang").Title("Language").Width(100); 
    columns.Command(command => { command.Edit(); command.Destroy(); }); 

}) 
.HtmlAttributes(new { style = "height: 380px;" }) 
.Scrollable() 
.Groupable() 
.Sortable() 
.Pageable(pageable => pageable 
    .Refresh(true) 
    .PageSizes(true) 
    .ButtonCount(5)) 
.DataSource(dataSource => dataSource // Configure the grid data source 
      .Ajax() // Specify that ajax binding is used 
      .Read(read => read.Action("Notes_Read", "MyNotes")) // Set the action method which will return the data in JSON format 
      .Destroy(update => update.Action("Notes_Destroy", "MyNotes")) 
      .Update(update => update.Action("Notes_Update", "MyNotes")) 
      .Model(model => 
       { 
        model.Id(p => p.id); 
       }) 
     ) 
.Selectable() 
) 

В коде представления, я попытался написать:

columns.ForeignKey(p => p.Language.id, (System.Collections.IEnumerable)ViewData["Language"], "id", "lang").Title("Language").Width(100); 

Но я сохраняйте следующую ошибку:

Ошибка 2 Не удается преобразовать лямбда-выражения к типу «строка», потому что не тип делегата

нужны некоторые предложения и советы о том, что может идти здесь не так, и как решить эту проблему.

+1

Я просто попытался сделать это и не ошибаюсь. Какую IDE вы используете, и вы попробовали очистить и перестроить? –

+0

Здравствуйте, Прежде всего спасибо за ваши усилия, пытаясь решить мою проблему. Я использую VS 2013. Я не пытался очистить и перестроить, но я постараюсь завтра. Я дам вам знать ... – FieryA

+0

это работает спасибо – FieryA

ответ

0

Я просто попытался сделать это и не ошибаюсь. Какую IDE вы используете, и вы попробовали очистить и перестроить?

Просто подумал, что я бы ответил здесь, если вы хотите принять это как ответ.

Смежные вопросы

 Смежные вопросы