Анонимный тип в событии Repeater DataBound - PullRequest
9 голосов
/ 31 июля 2009

Я устанавливаю источник данных для повторителя ASP.NET следующим образом:

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

Теперь, в событии OnDataBound повторителя, как я могу получить свойства RepName и Target из анонимного типа, содержащегося в e.Item.DataItem?

Большое спасибо

Ответы [ 2 ]

20 голосов
/ 31 июля 2009

Вы можете использовать DataBinder.Eval :

string repName = (string)DataBinder.Eval(e.Item.DataItem, "RepName");
string target = (string)DataBinder.Eval(e.Item.DataItem, "Target");
13 голосов
/ 12 августа 2010

Я знаю, что на этот вопрос был дан ответ более года назад, но я только что нашел решение .NET 4.0 для этой проблемы.

Когда вы связываете свой анонимный тип с ретранслятором, вы можете получить доступ к свойствам события OnDataBound следующим образом:

dynamic targetInfo = e.Item.DataItem as dynamic;

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