views:

585

answers:

1

Hi,

I'm trying to bind a collection implementing the ICollection, IEnumerable and IList interface to an asp.net repeater. The Collection is named CustomCollection. So I'm setting the datasource of the repeater to the collection, as follows:

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

Then, on the ItemDataBound event, I'm trying to access the DataItem object, as follow:

void rptRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e){

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

}

For some reason the e.Item.DataItem object is null. Do anyone know why this is, and/or what I could do to get hold of the object in the collection that is to be databound to the repeater?

Thanx!

+5  A: 

In your ItemDataBound event handler, you need to check that it is not trying to bind to a header or footer template:

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
    object obj = e.Item.DataItem;
}
Oded
Thanx alot. I also removed the duplicate.
Clean
Glad I was able to help.
Oded