什么是Container.DataItem?

sly*_*dan 25 asp.net

什么是Container.DataItem?

Sac*_*hag 21

本文可能会帮助您理解.引用:

那么这个表达到底是什么?<%#%>表示这是一个DataBinding表达式,而Container.DataItem是数据源中当前项的别名.换句话说,如果要绑定到对象集合,则Container.DataItem是该集合的当前行.

此博客条目提供有关何时使用的帮助.引用:

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

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

  • @chandan - 好吧,如果它是一个字符串{'a','b','c'}的数组,那么currentitem就是当前处理的那个.在那个时间点它可以是a,b或c.这回答了你的问题了吗? (2认同)

Sam*_*eff 5

我在尝试Container.DataItem从隐藏代码内部访问的上下文中遇到了相同的问题。Containeraspx/ ascx代码中存在,但在后面的代码中不存在。通过查看生成的C#代码,我看到它是BindingContainer对绑定的特定控件的强制转换引用。

的等效代码隐藏代码Container.DataItem是这样的:

var ddl = (DropDownList) source;
var dataItem = ((RepeaterItem) ddl.BindingContainer).DataItem;
Run Code Online (Sandbox Code Playgroud)