Я хочу получить элемент, к которому привязаны данные, во время события ItemDataBound asp: Repeater.
Я попробовал следующее (это был непринятый ответ в вопрос о переполнении стека):
protected void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Object dataItem = e.Item.DataItem;
...
}
но e.Item.DataItem
имеет значение null.
Как я могу получить доступ к элементу, к которому привязаны данные во время события ItemDataBound. Я предполагаю, что событие ItemDataBound происходит, когда элемент привязан к данным.
Я хочу получить доступ к объекту, чтобы я мог предпринять шаги для управления тем, как он отображается, кроме того, объект может иметь дополнительные полезные свойства, позволяющие мне улучшить его отображение.
Отвечать
Инструмент имел право отвечать. Ответ заключается в том, что 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;
...
}