如何停止执行UserControls PageLoad方法?

时间:2008-12-10 03:15:55

标签: asp.net webusercontrol

我有一个MasterPage,我的Usercontrol在div中。

我可以将visible = false设置为UserControl和包含div,这样可以正常工作。 但是UserControl的Page_Load总是被击中。

这是设计,还是我错过了如何阻止页面执行进入UserControl的Page_Load方法。

2 个答案:

答案 0 :(得分:1)

当您向页面添加UserControl时,它将被实例化并在每次执行页面时添加到Page.Controls集合中。当你将Visible设置为false时,它基本上只是将控件的html渲染短路,以便它不会显示在页面上。

如果您的控件在“Page_Load”中执行了一些昂贵的操作,我会关闭Visible属性来绕过该操作。

如果从未创建过控件,你怎么能告诉它不可见?

答案 1 :(得分:1)

您无法停止执行用户控件的PageLoad事件方法。

@joshperry建议使用Visible属性来确定是否在代码中执行耗时的操作是一个很好的。

另一种选择是在OnPreRender事件方法中完成耗时的选项。