【问题标题】:When are controls initialized with their design time values?控件何时使用其设计时值初始化?
【发布时间】:2011-01-06 22:48:50
【问题描述】:
a)我是否正确假设只有在母版页上的控件合并到页面的控件树之后,控件(母版页和内容页中的控件)才能使用它们的声明性值(在设计时设置的值)进行初始化)?
b) 如果我的上述假设是正确的,那么这些控件不能在 Page.PreInit 期间用它们的设计时值初始化,因为在 Page.PreInit 事件阶段我们仍然能够动态设置母版页?!那么,如果是这样的话,控件什么时候用它们的声明值初始化呢?在初始化事件期间或...?
感谢
【问题讨论】:
标签:
asp.net
webforms
master-pages
【解决方案1】:
页面被编译成 .Net 类,因此标记的解析实际上发生在页面生命周期之外。当请求到达您的页面时,页面类已从标记和代码隐藏的组合中编译。
这很容易验证,只需放置一个Page_PreInit 处理程序并查看页面上控件的属性。你会看到它们已经设置好了。
MasterPage/Page 关系只是 HTML 将如何呈现的函数,以及所有内容所在的命名容器。
实际页面编译发生的时间部分取决于您如何设置项目,部分取决于 ASP.Net 对应用程序中文件的监控。