Repeater DataBound事件中的匿名类型

sta*_*ium 10 c# asp.net repeater anonymous-types databound

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

rptTargets.DataSource = from t in DB.SalesTargets select new { t.Target, t.SalesRep.RepName };
Run Code Online (Sandbox Code Playgroud)

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

非常感谢

Ric*_*lay 21

您可以使用DataBinder.Eval:

string repName = (string)DataBinder.Eval(e.Item.DataItem, "RepName");
string target = (string)DataBinder.Eval(e.Item.DataItem, "Target");
Run Code Online (Sandbox Code Playgroud)


Kri*_*aes 13

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

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

dynamic targetInfo = e.Item.DataItem as dynamic;

string repName = targetInfo.RepName;
string target = targetInfo.Target;
Run Code Online (Sandbox Code Playgroud)