什么是Container.DataItem?
本文可能会帮助您理解.引用:
那么这个表达到底是什么?<%#%>表示这是一个DataBinding表达式,而Container.DataItem是数据源中当前项的别名.换句话说,如果要绑定到对象集合,则Container.DataItem是该集合的当前行.
此博客条目提供有关何时使用的帮助.引用:
Container.DataItem是绑定列表中此特定项的DataItem的运行时别名.对于显示10行数据的网格,这是数据源中的一行.DataItem的实际类型由数据源的类型决定.例如,如果数据源是Dataview,则DataItem的类型是DataRowView.如果数据源的类型是字符串数组,则DataItem的类型为String.如果数据源是强类型对象的集合(例如"Employees"对象),则DataItem的类型是Employees.
这些情况中的每一种都需要稍微不同的数据绑定表达式,VB和C#之间存在进一步的差异.
我在尝试Container.DataItem
从隐藏代码内部访问的上下文中遇到了相同的问题。Container
在aspx
/ ascx
代码中存在,但在后面的代码中不存在。通过查看生成的C#代码,我看到它是BindingContainer
对绑定的特定控件的强制转换引用。
的等效代码隐藏代码Container.DataItem
是这样的:
var ddl = (DropDownList) source; var dataItem = ((RepeaterItem) ddl.BindingContainer).DataItem;