什么是Container.DataItem?

时间:2010-10-22 16:53:02

标签: asp.net

究竟什么是Container.DataItem?

2 个答案:

答案 0 :(得分:21)

This article可能会帮助您理解。引用:

  

那么这个表达到底是什么? <%#%>意味着这是一个   DataBinding表达式和Container.DataItem是。的别名   数据源中的当前项。换句话说,如果你有约束力   对象集合Container.DataItem是当前行   集合。

This blog entry提供有关何时使用的帮助。引用:

  

Container.DataItem是DataItem的运行时别名   绑定列表中的特定项。对于显示10行的网格   数据,这是数据源的一行。实际的类型   DataItem由数据源的类型决定。例如,如果   数据源是Dataview,DataItem的类型是DataRowView。如果   数据源的类型是字符串数组,类型   DataItem是String。如果数据源是一个集合   强类型对象(例如“Employees”对象),类型   DataItem是Employees。

     

每种情况都需要稍微不同的数据绑定   表达式,VB和C#之间存在进一步的差异。

答案 1 :(得分:4)

我特意在尝试从代码隐藏中访问Container.DataItem的上下文中遇到了同样的问题。 Container / aspx代码中存在ascx,但代码隐藏中不存在BindingContainer。通过查看生成的C#代码,我看到它是对绑定的特定控件的Container.DataItem的类似引用。

var ddl = (DropDownList) source; var dataItem = ((RepeaterItem) ddl.BindingContainer).DataItem; 的等效代码隐藏代码是:

{{1}}