【发布时间】:2009-03-05 22:16:28
【问题描述】:
我试图在调用控件的 CreateChildControls 方法之前在自定义 Web 控件上设置属性。原因是,在那里执行了很多逻辑,这取决于相关属性的值。我可以直接使用 HTML 中的显式值设置属性,并且它会及时获取,但这对我没有用,因为它需要基于服务器端变量。
棘手的一点是,EnsureChildControls 方法是从控件的“CONTENTS”属性的 getter 调用的,该属性对应于 ASPX 文件中的标签。例如;
<myControl>
<content>
...
</content>
</myControl>
据我所知,这反过来会触发被覆盖的 CreateChildControls 方法,并且在没有我尝试设置的属性的正确值的情况下执行逻辑。
我要解决的是,在我的页面的 ASP.NET 生命周期中,我可以设置我的属性,以便在 .NET 访问我的“CONTENT”属性的 getter 之前设置它控制?
我已经在父页面上尝试过 OnPreInit,但在控件上的 CreateChildControls 之后仍然被击中。我也不想更改控件本身,因为它是一个通用控件,我不想针对这种特殊情况对其进行特殊处理。
任何人有任何想法可以设置我的属性值,以便按照我想要达到的顺序拾取它?
【问题讨论】: