Repeater DataBound事件中的匿名类型

时间:2009-07-31 12:13:47

标签: c# asp.net repeater anonymous-types databound

我正在设置ASP.NET转发器的DataSource,如下所示:

rptTargets.DataSource = from t in DB.SalesTargets select new { t.Target, t.SalesRep.RepName };

现在,在转发器的OnDataBound事件中,如何从e.Item.DataItem中包含的匿名类型中检索RepName和Target属性?

非常感谢

2 个答案:

答案 0 :(得分:20)

您可以使用DataBinder.Eval

string repName = (string)DataBinder.Eval(e.Item.DataItem, "RepName");
string target = (string)DataBinder.Eval(e.Item.DataItem, "Target");

答案 1 :(得分:13)

我知道这个问题已在一年多前得到解答,但我刚刚找到了解决此问题的.NET 4.0解决方案。

将匿名类型绑定到转发器时,可以像下面这样访问OnDataBound事件中的属性:

dynamic targetInfo = e.Item.DataItem as dynamic;

string repName = targetInfo.RepName;
string target = targetInfo.Target;