在 asp:repeater 的 ItemDataBound 事件期间,我希望能访问正在数据绑定的项。
我尝试了以下方法(这是一个 stackoverflow 问题中未被接受的答案):
protected void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Object dataItem = e.Item.DataItem;
...
}
但是e.Item.DataItem
为空。
在事件ItemDataBound被调用时,我如何访问正在绑定数据的项。我假设事件ItemDataBound发生在绑定数据项时。
我想要访问这个对象,以便我可以采取措施来控制它的显示方式,此外该对象可能有其他有用的属性,让我可以丰富它的显示方式。
答案
Tool 给出了正确的答案。答案是e.Item.Data
仅在e.Item.ItemType
为(Item,AlternatingItem)时有效。其他时间它无效。在我的情况下,我收到了标题(或页脚)行中的ItemDataBound事件,在那里没有DataItem:
protected void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
// if the data bound item is an item or alternating item (not the header etc)
if (e.Item.ItemType != ListItemType.Item &&
e.Item.ItemType != ListItemType.AlternatingItem)
{
return;
}
Object dataItem = e.Item.DataItem;
...
}