我想在 asp:repeater 的 ItemDataBound 事件期间获取正在数据绑定的项目。
我尝试了以下方法(这是stackoverflow 问题中不被接受的答案):
protected void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Object dataItem = e.Item.DataItem;
...
}
但e.Item.DataItem
为空。
如何在名为 ItemDataBound 的事件期间访问正在绑定数据的项目。我假设 ItemDataBound 事件发生在项目被数据绑定时。
我想了解对象,以便我可以采取措施控制它的显示方式,此外,该对象可能具有其他有用的属性,可以让我丰富它的显示方式。
回答
工具有正确的答案。答案是e.Item.Data
只有在e.Item.ItemType
(Item, AlternatingItem) 时才有效。其他时候它是无效的。就我而言,我在没有 DataItem 的页眉(或页脚)行期间收到了 ItemDataBound 事件:
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;
...
}