2013-02-22 78 views
1

我想的匿名枚舉類型綁定到這樣一個轉發器:綁定匿名類型對中繼

protected void Page_Load(object sender, EventArgs e) 
{ 
    var obj = myEnumerable.Select(x => new { foo = x.bar, ... }); 

    myRepeater.DataSource = obj; 
    myRepeater.DataBind(); 
} 

如何訪問的e.Item.DataItemfoo財產OnItemDataBound

protected void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     myFunction(e.Item.DataItem.foo); 
    } 
} 

我不知道該投什麼e.Item.DataItem,我錯過了什麼嗎?這可能沒有創建一個強類型的類?

我不能直接綁定myEnumerablemyRepeater,因爲我必須先操縱它。

回答

3

您可以將匿名類型的序列綁定到中繼器,但是如果您需要從另一個方法訪問該類型,則應該定義一個適當的類。

匿名類型在狹義範圍內很有用,當你不需要時需要這個類型信息要堅持*。在你的情況下,你需要它,所以定義一個類。


*從技術上講,這種類型當然會堅持下去。編譯器在後臺生成一個類,並給它一個名字,就你所關心的而言,它是不可說的。但是這是在幕後,幕後和幕後發生的。內部。