2012-01-13 74 views
1

我有一个带有TextBox,Button,ListBox和另一个Button的自定义字段。当我点击其中一个按钮时,出现以下错误(当前没有逻辑或数据填充文本框或列表框,我只是试图连线):回发时的Sitecore自定义字段错误(无法加载视图状态)

“无法加载视图状态。要加载viewstate的树必须与前一个请求期间用于保存viewstate的控件树相匹配,例如,动态添加控件时,在回发期间添加的控件必须与在添加期间添加的控件的类型和位置相匹配最初的要求。“

我在每一个OnLoad中添加我的控件。有什么建议么?

+0

请提供的示例代码 – 2012-01-13 01:55:00

+0

@birdus,你能不能提供更新? – 2012-03-27 08:45:02

回答

-1

我遇到过类似的问题。你会需要视图状态吗?否则,请尝试在您的<%@ page %>声明中设置enableviewstate="false"以完全禁用它。

+0

我不认为我需要viewstate,但这是一个用户控件,我不认为我有权访问将承载用户控件的实际Sitecore页面中的页面声明。 – birdus 2012-01-13 15:19:07

+0

这不需要解决这个问题。 – 2012-01-19 01:40:56

1

看看ASP.net页面的生命周期。我认为这个错误发生在控件树从viewstate生成时改变了,所以它不再匹配,即控件不能从viewstate重新填充。

OnLoad在处理过程中已经到了re -create controls。也许你只需要将其移至Init即可。

见其他答案 - Add dynamic controls in ASP.NET, is there a difference between 1.1 and 2.0?

+0

这是正确的答案。 OnLoad太晚了(视图状态已经恢复。) – 2012-01-19 01:39:42