2011-11-30 50 views
1

我想在GridView控件中顯示嵌套的匿名類型。但是GridView控件只顯示OrderID和OrderDate字段(即它不顯示嵌套類型)。顯示嵌套的匿名類型

我用下面的代碼:

protected void btn2_Click(object sender, EventArgs e) 
{ 
    using (EStoreEntities ctx2 = new EStoreEntities()) 
    {  
     var query = (from o in ctx2.Orders 
        select new 
        { 
         o.OrderID, 
         o.OrderDate, 
         nest_anon = new 
         { 
          o.Customer, 
          o.ShipAddress, 
          o.Status 
         } 
        });  

     tb2.Text = (query as ObjectQuery).ToTraceString();     
     gv2.DataSource=query; 
     gv2.DataBind(); 
    }  
} 

我應該在我的代碼在我的GridView控件來顯示匿名和嵌套匿名類型修復?

+0

你有什麼錯誤嗎?你能向我們展示你的GridView標記,你試圖顯示嵌套的對象數據嗎? – patmortech

+0

爲什麼你需要將它嵌套?只需展平要在網格視圖中顯示的對象即可。 – jasonp

回答

0

您將無法做到這一點,因爲匿名類型只對其定義的範圍有效 - 即按鈕單擊事件處理程序。

您將需要創建一個真實類型,然後解決如何在網格中顯示該類型。

+3

這是不正確的。匿名類型可以返回並在創建它們的方法之外使用。 – jasonp

+0

Chris,你應該創建一個適合我linq結果的類型類嗎? – Michael

+1

@jason - 發佈解釋如何的答案。 – ChrisF