我有一個關於asp.net中的視圖狀態和自定義控件的問題。asp.net中的視圖狀態和自定義控件
說我有一個頁面和一個簡單的複合控件。我知道在複合控件中,我必須將所有子控件加載到Page.OnInit上,以便可以應用它們的視圖狀態併爲OnLoad做好準備。
現在說我在頁面上有一棵樹,並基於選定的節點我想加載某個自定義控件。 TreeView的selectedNode在OnInit期間不可用,但在OnLoad和之後可用。我也知道,如果我在頁面的OnLoad上添加一個自定義控件,該頁面的海關控制的週期仍將從OnInit開始,然後到OnLoad等。
所以我的問題是,如果自定義控件的OnInit是仍然被調用,即使我在父級的OnLoad方法中加載此控件,爲什麼viewstate不填充自定義控件?
是否因爲父級包含孩子的視圖狀態,如果我從父母的OnLoad載入孩子viewstate不可用?
如果您有上述情況(使用樹視圖),您通常會如何加載自定義控件?
難道你不能將問題分段嗎? – gdoron
對我來說聽起來正確。您是否驗證過回發之前和之後的控件樹是否相同? –