Determining whether the current item is the last one from inside ItemDataBound

N

Nathan Sokalski

I have a control that I want displayed in all items except the last one. I
figured the best way to do this was to determine whether the current item
was the last from within the ItemDataBound event using code such as the
following:


If e.Item.ItemIndex=(numberofitems-1) Then mycontrol.Enabled=False


but I cannot find a property that contains the total number of items before
the ItemDataBound event is raised. Any ideas? Thanks.
 
C

Cor Ligthert [MVP]

Nathan,

In almost all collection there is a count or a length telling what is the
total number of the items

The count-1 or lenght - 1 is than the index to the last.

I hope this helps,

Cor
 
N

Nathan Sokalski

That would help, except for one thing. What collection do I use? I tried the
following two:

DataList.DataKeys.Count
DataList.Items.Count

The problem is that these collections are not completely filled until after
the ItemDataBound event has been called however many times it gets called.
To see this, add a line such as:

Response.Write(DataList.DataKeys.Count)

inside the ItemDataBound event handler, and you will see that the value is
different each time it is called, which makes it almost useless inside this
handler. I need a property or method that can tell me the number of items
before the DataBind() method is called. I thought about using the DataTable
that I use for the DataList.DataSource property, but that would require me
to create a public or session variable, which is not the ideal way to do it,
and it requires extra code. Any other ideas? Thanks.
 
C

Cor Ligthert [MVP]

Nathan,

I always use the datasource to get the total items.

Be aware that you take the defaultview if you use that, which by instance in
a sort becomes than dynamic.

Cor
 
E

Eliyahu Goldin

Why don't you use rather the PreRender event, where all items and the Items
collection are already fully built?

Eliyahu
 
N

Nathan Sokalski

Thanks, I don't think that idea ever occurred to me because I have never
used the PreRender event before, but I think that the fact that the
condition is only true for one item, it is definitely more efficient.
Thanks!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top