我有一个MasterPage,我的Usercontrol在div中。
我可以将visible = false设置为UserControl和包含div,这样可以正常工作。 但是UserControl的Page_Load总是被击中。
这是设计,还是我错过了如何阻止页面执行进入UserControl的Page_Load方法。
答案 0 :(得分:1)
当您向页面添加UserControl时,它将被实例化并在每次执行页面时添加到Page.Controls集合中。当你将Visible设置为false时,它基本上只是将控件的html渲染短路,以便它不会显示在页面上。
如果您的控件在“Page_Load”中执行了一些昂贵的操作,我会关闭Visible属性来绕过该操作。
如果从未创建过控件,你怎么能告诉它不可见?
答案 1 :(得分:1)
您无法停止执行用户控件的PageLoad事件方法。
@joshperry建议使用Visible属性来确定是否在代码中执行耗时的操作是一个很好的。
另一种选择是在OnPreRender事件方法中完成耗时的选项。