如果要「手動」添加控件,則需要在OnInit()中執行此操作,以便可以在緊接在OnInit()之後發生的LoadViewState()調用中爲它們指定狀態。
如果您不知道需要添加多少控件,因爲它是動態的,您可以重寫LoadViewState和SaveViewState。看到這個例子(編寫沒有Visual Studio):
public class MyPage : Page
{
class State
{
numberOfControls int
otherState object
}
override void LoadViewState(savedState object)
{
var myState = (State)savedState;
SetupMyControls(myState.numberOfControls);
base.LoadViewState(myState.otherState);
}
override object SaveViewState()
{
return new State
{
numberOfControls = GetNumberOfMyControls(),
otherState = base.SaveViewState()
};
}
}
是的..我知道,但不應該如果它指向他們的頁面加載,他們應該初始化?這是讓我困惑的部分。 – 2010-06-28 18:35:59
是的,他們將被初始化 - 但你的數組仍然包含舊的引用(空值)。 – laktak 2010-06-29 06:22:04