我想将一个可枚举的匿名类型绑定到这样的转发器:
protected void Page_Load(object sender, EventArgs e)
{
var obj = myEnumerable.Select(x => new { foo = x.bar, ... });
myRepeater.DataSource = obj;
myRepeater.DataBind();
}
如何访问foo
中e.Item.DataItem
的{{1}}属性?
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
绑定到myEnumerable
,因为我必须先操作它。
答案 0 :(得分:3)
您可以将匿名类型的序列绑定到转发器,但是如果您需要从另一个方法访问该类型,则可以定义适当的类。
当您不需要类型信息时,匿名类型在狭义范围内很有用*。在你的情况下,你需要它,所以定义一个类。
*从技术上讲,类型当然会坚持下去。编译器在幕后生成一个类,并给它一个名称,就你而言是无法形容的。但这种情况发生在幕后,幕后和引擎盖下。内部。