今天在做一个页面中,动态添加自定义控件,用到了PlaceHolder控件,并在后台用简单的代码实现动态加载, 如 PlaceHolder1.Controls.Add(LoadControl("~/UserControls/" + "IMGUserControl" + ".ascx"));但是运行后动态加载完第二个控件后,想回到第一个控件,出现了如下错误:
未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配。例如,当以动态方式添加控件时,在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
解决方法:在PlaceHolder控件的EnableViewState="false",就可以了。
异常详细信息: System.Web.HttpException: 未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配。例如,当以动态方式添加控件时,在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配。