究竟什么是Container.DataItem?
答案 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}}