我想将e.Item.DataItem中的值读入字符串中,但无论出于何种原因,我似乎无法得到它,尽管我可以在监视窗口中看到它从DataItem中读取匿名类型
0
A
回答
2
您可以添加更多信息吗?你真的想要一个字符串值还是你需要一个特定的字符串值?
如果您需要一个应该可行的字符串值。监视窗口倾向于通过在对象上调用.ToString来显示值。如果监视窗口中的值是你想要的字符串,那么你应该可以通过简单地调用ToString来获得它。
var item = e.Item.DataItem.ToString();
您需要对各种属性进行空检查。
0
这听起来像你这样做是这样的:
obj.Datasource = (from .... select new { a=..., b=...}).ToList();
并为您的项目之一,你想获得“A”或“B”时,权值?
你可以,但它很复杂(不推荐)。要做到这一点,你必须将e.Item.DataItem转换为正确的类,但这是一个匿名类型,这意味着你不能在没有任何欺骗的情况下指定转换。你可以尝试这样的事:
private T ForceCast(T prototype, object obj)
{
return (T)obj;
}
然后,调用ForceCast(新{A = ......,B = ...},e.Item.DataItem强制转换)。如果你在同一个程序集中,我认为这将起作用(并且你为a和b提供的值正确 - 编译器会为你猜测T并找出结果)。然而,更好的方法是定义一个真正的类来保存从数据源返回的数据。然后你可以将e.Item.DataItem转换为这个类,你会没事的。
(注:?我还没有真正尝试运行这段代码 - 这仅仅是一个想法,而读这我,但我想我以前见过它也许是this blog)
10
接到一个similar question
DataBinder.Eval(e.Item.DataItem, "PropertyName")
相关问题
- 1. 从匿名类型
- 2. 匿名类型
- 3. 匿名类型
- 4. LINQ中,VB - 匿名类型不能转换为匿名类型
- 5. LINQ中的匿名类型
- 6. C#匿名类型
- 7. 匿名类型IQueryable
- 8. Android从匿名类中获取活动
- 9. 匿名类型和泛型
- 10. Java:从匿名类获取超类
- 11. 如何从VB.NET中的匿名类型获取属性
- 12. 如何使用“动态”变量从匿名类型读取属性
- 13. 如何从IQueryable的匿名类型
- 14. 从LINQ查询返回匿名类型?
- 15. 返回匿名类型从函数
- 16. 签名中的匿名类型
- 17. 匿名类型的语法
- 18. 创建匿名类型!
- 19. 克隆匿名类型?
- 20. 匿名类型集合
- 21. 排序匿名类型
- 22. LINQ GroupBy匿名类型
- 23. 转换匿名类型来
- 24. 匿名类型一般
- 25. C#匿名类型声明
- 26. 匿名类型的C#List.Foreach
- 27. 返回匿名类型
- 28. 列表与匿名类型
- 29. 异步和匿名类型
- 30. 匿名类型的LINQ
下面我们将需要比这更多的信息,如果我们明白发生了什么。 – Noldorin 2009-04-13 00:45:42