2008-12-10 116 views
1

我有一個MasterPage,我的Usercontrol在div中。如何停止執行UserControls PageLoad方法?

我可以設置visible = false到UserControl和包含div,並且這工作正常。 但UserControl的Page_Load始終被打中。

這是設計,還是我錯過了如何停止頁面執行進入UserControl的Page_Load方法。

回答

1

你不能停止執行進入用戶控件的PageLoad事件方法。

@joshperry建議使用Visible屬性來確定是否在代碼中執行耗時的操作是一件好事。

另一種選擇是在OnPreRender事件方法中完成耗時的選項。

1

當您將一個UserControl添加到一個頁面中時,它將在每次頁面執行時被實例化並添加到Page.Controls集合中。當你將Visible設置爲false時,它基本上只是短路了控件html的呈現,所以它不會顯示在頁面上。

如果您的控件在「Page_Load」中執行了一些昂貴的操作,我將關閉Visible屬性以規避該操作。

如果控制從未被創建,你怎麼能說它是不可見的?