This error message seems to be very common in an ASP.Net application. Most of the time it is caused by databinding at the wrong time during a postback. Usually it can be solved by wrapping a call to DataBind() with an "if (!IsPostBack)" as in the following:
if (!IsPostBack)
{
myList.DataBind();
}
However, sometimes you may need to bind during a postback. As in my case, I had a DataList nested inside of a repeater. I also had a button inside of each element of the DataList that needed to fire, so I needed to attach an ItemCommand event to each DataList inside the repeater on postback. Therefore, I couldn't use the normal solution to this problem.
The reason the error occured was when somebody would click the Button too quickly. In other words, the page needed to finish loading before allowing the user to click the button. I came across the following blog posting that solved the issue for me:
http://forums.asp.net/t/1144649.aspx
It's easy -- it's just a server control you plop down on the page. What it does is asks the user to wait until the page finishes loading before clicking on anything.
I hope someone else finds this useful.