有人可以解释为什么这会在动态加载的UC中发生吗?

时间:2009-02-09 17:53:45

标签: c# asp.net

我通过反复试验得到了这个,但我真的很感激解释。

摘要:我正在从主机页面动态加载用户控件。

主页.aspx

OnInit执行LoadControl并加载控件

User control .ascx

On Page_Load
-> First time load
    --> I set a value to a hidden input type variable
    --> I set a value to a ViewState object (using ViewState["test"] = "test")
-> Subsequent post backs
    --> Hidden var still persists
    --> ViewState is NULL !! (Why?)

If i move the code from Page_Load to Oninit:
-> Subsequent post backs
   --> Both hidden var and Viewstate is NULL! 

为什么?

1 个答案:

答案 0 :(得分:1)

在初始化阶段之后,加载了,因此在第二种情况下它当然是空的。

这就是你需要在那里加载控件的原因:因为如果等到加载viewstate之后,那么控件的状态将不会恢复 - 它已经通过了那个阶段。