我有一个aspx页面,它在回发时动态加载一些控件(即当发生点击事件时)并将它们添加到占位符.根据所点击的内容,需要加载一组不同的控件.
这在第一次完美地工作,但是当我清除占位符的控件并尝试动态加载一组不同的控件时,我得到以下错误:"无法加载viewstate.正在加载viewstate的控件树必须与控件树匹配用于在上一个请求中保存视图状态."
即使我执行ViewState.Clear(),也会发生这种情况.
有没有办法做到这一点?
Ser*_*gio -1
动态创建控件时,必须确保创建的每个控件都有唯一的 ID。
我认为这里发生的情况是您将控件命名为:Control1、Control2、Control3。
也许当您单击创建一组不同的控件时,您可能会为不同类型的对象指定相同的名称,假设 Control1 最初是像文本框一样创建的,当您单击它时它是一个复选框。
如果不看到代码,很难判断为什么 ViewState.Clear() 不起作用,但如果您尝试清除视图状态,则不需要回发,您可以尝试请求新页面并在查询字符串上传递参数的回发。这也会更快,因为您不必将 ViewState 信息发送回服务器。
归档时间: |
|
查看次数: |
4527 次 |
最近记录: |