Viewstate不适用于复选框

时间:2012-01-17 11:23:41

标签: asp.net checkbox viewstate

我遇到以下情况。一个带有一个ascx的aspx页面,其中包含一个复选框。 在aspx页面,我有EnableViewState = true和ViewStateMode=disabled。然后,对于需要查看状态的每个控件,我覆盖了ViewStateMode=Enabled。 ascx也在aspx页面的声明中启用了ViewStateMode,但也在ascx页面的标题中启用了。复选框也设置了它。 如果点击它,它就不会触发selected_changed事件。它回发了,因为它有Auto-postback=true但不会触发事件。

如果在主aspx页面中我设置ViewStateMode启用它可以工作。但我无法理解为什么它不会覆盖它......

2 个答案:

答案 0 :(得分:1)

好吧,我看一下MSDN文档中的Control.ViewStateMode Property

请注意:

  

仅当EnableViewState属性设置为true 时,页面或控件的ViewStateMode属性才有效。如果EnableViewState属性设置为false,即使ViewStateMode属性设置为Enabled,也将关闭视图状态。

处理ViewState的正确方法是:

  • 保持EnableViewState =“true”(默认为无处不在)
  • ViewStateMode =“false”母版页。这样,每个派生页面和控件都继承ViewStateMode,并且不会在html
  • 中输出viewstate
  • 通过设置ViewStateMode =“true”
  • ,仅在复选框上启用viewstate

答案 1 :(得分:0)

确保您正在开启/关闭您的视图状态 - > Init或InitComplete。