У меня есть классическое отношение Parent-Child, которое я хотел бы использовать в CRUD с помощью asp:GridView
элементов управления. CRUD родитель легко, но задача состоит в том, чтобы вложить asp:GridView
в asp:GridView
, который способен работать с дочерними отношениями.
Чтобы облегчить проблему, я создал пример. Рассмотрим следующий EF-код:
public class Context : DbContext
{
public DbSet<Animal> Animals { get; set; }
public DbSet<Tag> Tags { get; set; }
}
public class Animal
{
public int AnimalID { get; set; }
public string Name { get; set; }
public virtual IEnumerable<Tag> Tags { get; set; }
}
public class Tag
{
public int TagID { get; set; }
public string Name { get; set; }
}
Я использую asp:Gridview
для просмотра / редактирования объектов Animal
:
<asp:GridView runat="server" DataSourceID="animalDataSource" DataKeyNames="AnimalID" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Description" HeaderText="Description" />
<asp:CommandField ShowCancelButton="true" ShowEditButton="true" ShowDeleteButton="true" />
</Columns>
</asp:GridView>
DataSource
связан с кодом позади:
protected void DataSource_ContextCreating(object sender, EntityDataSourceContextCreatingEventArgs e)
{
var context = new Context();
e.Context = ((IObjectContextAdapter)context).ObjectContext; }
}
Я хотел бы включить вложенный asp:Gridview
в качестве одного из столбцов для добавления / удаления / редактирования Tag
объектов, принадлежащих этому Animal
. Как мне этого добиться?