我有一个ASCX控件,这是一个特殊的下拉列表。我将该控件动态添加到页面并用数据填充它。此控件具有回发功能,可以更改第二个动态创建的标准下拉列表的内容。
当我更改第一个下拉列表中的选择时,indexchanged会触发并获取新数据并尝试将其放入第二个下拉列表的项目集合中,方法是首先清除它然后用新数据填充它。
这在第一次更改选择时工作正常,但是当我第二次选择时会抛出以下错误:
加载viewstate的控制树必须与上次请求期间用于保存viewstate的控制树匹配。
我没有在已触发的事件中添加或删除新控件,只是更改数据。而且,它第一次有效,但后来却没有。
如果我在子控件上禁用状态视图,那么控件根本不会更新数据。
希望这很清楚:)
谢谢!
答案 0 :(得分:0)
在您的ASCX中 - 您是否在控件的OnInit事件中重新创建下拉列表每个时间?如果它们是动态创建的,则每次有回发时都需要创建它们,并且必须在之前将ViewState的值反序列化到控制树中。