繁体   English   中英

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

[英]Why is e.Item.DataItem null on ItemDataBound event when binding an asp:net Repeater to a Collection?

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

rptRepeater.DataSource = customCollection;
rptRepeater.Databind();

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

void rptRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e){

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

}

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

感谢名单!

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

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
    object obj = e.Item.DataItem;
}

你也可以使用:

if(e.item.dataItem != null) object obj = e.Item.DataItem;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM