将asp:net Repeater绑定到Collection时,为什么在ItemDataBound事件上e.Item.DataItem为null?

Tom*_*ter 12 c# asp.net repeater

我正在尝试将实现ICollection,IEnumerable和IList接口的集合绑定到asp.net转发器.Collection名为CustomCollection.所以我将转发器的数据源设置为集合,如下所示:

rptRepeater.DataSource = customCollection;
rptRepeater.Databind();
Run Code Online (Sandbox Code Playgroud)

然后,在ItemDataBound事件上,我正在尝试访问DataItem对象,如下所示:

void rptRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e){

object obj = e.Item.DataItem; // DataItem is null for some reason

}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,e.Item.DataItem对象为null.有谁知道这是为什么,和/或我能做些什么来获取要转发到转发器的集合中的对象?

感谢名单!

Ode*_*ded 29

ItemDataBound事件处理程序中,您需要检查它是否未尝试绑定到页眉或页脚模板:

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
    object obj = e.Item.DataItem;
}
Run Code Online (Sandbox Code Playgroud)