首页 > 解决方案 > 在回发时从视图状态替换动态控件

问题描述

我有两个根据单选按钮列表选择生成的动态控件,它们在回发时保留它们的值,但是,当我更改为另一个控件类型时,我在视图状态树上收到错误,因为它需要另一个对象类型。当我更改类型时,有没有办法可以从视图状态中删除前一个对象?

这是一个简化的代码示例,以便于检查

if (rblFilter.SelectedValue == "1")
{
   var object1 = new object();
   holder.Controls.Add(object1);
}
else
{
   var object2 = new object();
   holder.Controls.Add(object2);
}

我得到的错误如下

“加载视图状态失败。正在加载视图状态的控件树必须与之前请求期间用于保存视图状态的控件树匹配。例如,动态添加控件时,回发期间添加的控件必须匹配在初始请求期间添加的控件的类型和位置。”

标签: c#asp.net

解决方案


推荐阅读