j'ai une collection de livres commeASP.NET LINQ avec Databinding
static public Book[] Books =
{
new Book {
Title="Funny Stories",
Publisher=Publishers[0],
Authors=new[]{Authors[0], Authors[1]},
PageCount=101,
Price=25.55M,
PublicationDate=new DateTime(2004, 11, 10),
Isbn="0-000-77777-2",
Subject=Subjects[0]
},
new Book {
Title="LINQ rules",
Publisher=Publishers[1],
Authors=new[]{Authors[2]},
PageCount=300,
Price=12M,
PublicationDate=new DateTime(2007, 9, 2),
Isbn="0-111-77777-2",
Subject=Subjects[0]
},
new Book {
Title="C# on Rails",
Publisher=Publishers[1],
Authors=new[]{Authors[2]},
PageCount=256,
Price=35.5M,
PublicationDate=new DateTime(2007, 4, 1),
Isbn="0-222-77777-2",
Subject=Subjects[0]
},
new Book {
Title="All your base are belong to us",
Publisher=Publishers[1],
Authors=new[]{Authors[3]},
PageCount=1205,
Price=35.5M,
PublicationDate=new DateTime(2006, 5, 5),
Isbn="0-333-77777-2",
Subject=Subjects[2]
},
new Book {
Title="Bonjour mon Amour",
Publisher=Publishers[0],
Authors=new[]{Authors[1], Authors[0]},
PageCount=50,
Price=29M,
PublicationDate=new DateTime(1973, 2, 18),
Isbn="2-444-77777-2",
Subject=Subjects[1]
}
};
J'ai deux à lier GridView imbriqué (First GridView Prend Titre du livre, la imbriquée GridView affiche la liste des auteurs).
La requête LINQ pour la sélection des titres et des auteurs est
List<Author> alist=new List<Author>();
var Authors =
SampleData.Books.Select(c=>new {Title=c.Title,list=c.Authors.ToList() });
GridView1.DataSource = Authors;
GridView1.DataBind();
et le code HTML est
<asp:GridView ID="GridView1" runat="server"
DataKeyNames="Title,list">
<Columns>
<asp:TemplateField HeaderText="Authors">
<ItemTemplate>
<asp:GridView ID="GridView2" runat="server"
DataSource='<%# Eval("list") %>'>
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Comment lier GridView1 et GridView2 lorsque AutoGeneratedColumns est enabaled à la fois?
Pouvez-vous essayer d'ajouter 'DataKeyNames =" FirstName, LastName "' (ou quels que soient vos membres Autor appelés) à GridView2? – Heinzi
oui. Maintenant le code fonctionne.Merci Heinzi. – Dilson