Yes, once again repeaters and ViewState are the bane of my existence...
We have several pages that follow essentially the same pattern: we have repeaters that include text boxes/check boxes, etc. We need to retrieve the values from those controls in order to get feedback from the user. To do that, the controls themselves are set to AutoPostBack=true. (To make things more complicated, these repeaters are sitting inside an ASP.NET Ajax UpdatePanel.) When the post back happens, we grab the updated values from the repeater items, save them, then re-databind the repeaters. This is less than optimal, I have come to see, but it worked. That's worked
, past tense. As soon as we moved the project to VS 2008, it completely fails to work. I'm pretty sure that ViewState is involved, since essentially we were relying on the repeaters being populated from ViewState before being databound. That seems to no longer be the case. To make matters worse, when I tried to code up a trivial example to demonstrate the problem, it works fine. Curses!
I'm down to two possibly explanations, neither of which I've been succesful proving so far. Either something in the page is touching those repeaters before LoadViewState, thus screwing up the object creation, or the new 3.5 version of Ajax is passing ViewState differently on Async PostBacks. Either way, we're working around it right now, but it would still be nice to know what happened.
My key learning from this whole experience? Repeaters are the work of the devil, and writing HTML by hand wasn't such a bad idea.