2009-12-15 103 views
0

ASP.NET LINQ我有藏書作爲與數據綁定

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] 
     } 
    }; 

我有兩個綁定嵌套的GridView(首先注意到GridView的書名,作者的嵌套GridView控件 顯示列表)。

LINQ查詢的選擇題目和作者是

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();    

和HTML代碼

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

如何綁定GridView1和GridView2時AutoGeneratedColumns針對兩個enabaled?

+0

你可以嘗試在GridView2中添加DataKeyNames =「FirstName,LastName」'(或者你的Autor成員被稱爲)嗎? – Heinzi 2009-12-15 12:50:20

+0

是的。現在代碼正在工作。謝謝你Heinzi。 – Dilson 2009-12-15 12:53:06

回答

0

[這是(部分刪除)評論討論的總結,以確保這個問題有答案]

您需要添加DataKeyNames="FirstName,LastName"(或任何你Author類的屬性被稱爲)添加到GridView2中,以便GridView知道它應該綁定到的自定義類的哪些屬性。