把動態建立控制項的動作搬至 Page_Init 事件中即可。
即於為什麼要放在 Page_Init 中呢?那是因為 Web Page 事件序順的關係,大致順序如下
1.Page_Init 時會建立所有 Page 上的控制項,也就是由將 aspx 中的定義產生控制項。
2.執行每個控制項的 LoadViewState,也是由 ViewState 中取回控制項設定的值,維護控制項的狀態。
3.觸發 Page_Load
由以上的順序,知道問題在那了嗎?重點在 LoadViewState,你要在 LoadViewState 之前建立控制項,
才能由 ViewState 中的值重新設定控制項的值。
1.Page_Init 時會建立所有 Page 上的控制項,也就是由將 aspx 中的定義產生控制項。
2.執行每個控制項的 LoadViewState,也是由 ViewState 中取回控制項設定的值,維護控制項的狀態。
3.觸發 Page_Load
由以上的順序,知道問題在那了嗎?重點在 LoadViewState,你要在 LoadViewState 之前建立控制項,
才能由 ViewState 中的值重新設定控制項的值。
沒有留言:
張貼留言