Container.DataItem是什么?
这篇文章 可以帮助你理解。引用内容如下:
<%# %> 是一个数据绑定表达式,Container.DataItem 是数据源中当前项的别名。换句话说,如果你绑定到一个对象集合,Container.DataItem就是该集合中的当前行。
这篇博客文章 给出了何时使用它的帮助。引用内容如下:
Container.DataItem 是绑定列表中此特定项的 DataItem 的运行时别名。对于显示10行数据的网格而言,这是数据源中的一行。DataItem 的实际类型取决于数据源的类型。例如,如果数据源是 DataView,则 DataItem 的类型为 DataRowView。如果数据源的类型是字符串数组,则 DataItem 的类型为字符串。如果数据源是强类型对象的集合(例如“Employees”对象),则 DataItem 的类型是 Employees。
每种情况都需要略微不同的数据绑定表达式,并且 VB 和 C# 之间存在进一步的差异。
Container.DataItem
时遇到了同样的问题。 Container
存在于 aspx
/ascx
代码中,但不存在于代码后台中。通过查看生成的 C# 代码,我发现这是绑定到特定控件上的 BindingContainer
的转换引用。Container.DataItem
的代码后台代码如下:var ddl = (DropDownList) source;
var dataItem = ((RepeaterItem) ddl.BindingContainer).DataItem;