Ok, I know why it happens, but I don't know how to fix it. I've got
code that responds to a user clicking an up or down arrow button which
moves a div layer down or up into a placeholder div layer. That all
works fine, but when the user moves a part up or down, then causes a
postback, I get the viewstate problem.
Failed to load viewstate. The control tree into which viewstate is
being loaded must match the control tree that was used to save
viewstate during the previous request. For example, when adding
controls dynamically, the controls added during a post-back must match
the type and position of the controls added during the initial
request.
How can I take a div and have it switch places and not break
viewstate?
If you want code, let me know-
tomisarobot@gmail.com - 05 Oct 2007 22:45 GMT
assuming I understand your problem...
ViewState is set during Init, so perhaps override OnInit or PreInit ?
..overload OnInit...
{
//fix
base.OnInit(...
}
perhaps waiting until after init to move your div would work as well.
Mark Rae [MVP] - 05 Oct 2007 23:40 GMT
> ViewState is set during Init
ViewState is set during Load:
http://msdn2.microsoft.com/en-us/library/ms178472(vs.80).aspx

Signature
Mark Rae
ASP.NET MVP
http://www.markrae.net
jdlwright@gmail.com - 05 Oct 2007 23:25 GMT
> How can I take a div and have it switch places and not break
> viewstate?
You'll have to call ClearChildViewState, which will also mean that
you'll need to fully recreate the child controls and not rely on
viewstate to fill them in.
Jim