Comment accéder à l'élément lié aux données pendant ItemDataBound?

Je veux obtenir l'élément qui est lié aux données, au cours de l'événement ItemDataBound d'un asp:repeater.

J'ai essayé le suivant (ce qui était un refusés de répondre dans un stackoverflow question):

protected void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    Object dataItem = e.Item.DataItem;
    ...
}

mais e.Item.DataItem est null.

Comment puis-je accéder à l'élément de données lié au cours de l'événement appelé ItemDataBound. Je suppose que l'événement ItemDataBound se produit lorsqu'un élément est lié aux données.

Je veux arriver à l'objet afin que je puisse prendre des mesures pour contrôler la façon dont il est affiché, en outre, l'objet peut avoir d'autres propriétés utiles de me laisser enrichir la façon dont il est affiché.

Réponse

Outil avait le droit de réponse. La réponse est que e.Item.Data n'est valide que lorsque e.Item.ItemType est (Item, AlternatingItem). D'autres fois, elle n'est pas valide. Dans mon cas, j'ai été reçu ItemDataBound événements au cours de l'en-tête (ou pied de page) lignes, où il n'y a pas de 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;
   ...
}

source d'informationauteur Ian Boyd