如何在OnInit - ASP.net之前将值设置为自定义控件属性?

时间:2011-07-11 01:03:59

标签: asp.net controls properties

我有一个拥有属性的自定义控件。在这个自定义控件OnInit方法中,它使用此属性来执行其他工作。

因此在页面方面,我初始化此自定义控件并在Page_Init方法中设置其属性。但是自定义控件的Oninit方法比Page_Init方法更早调用,这意味着我永远不会在OnInit方法中获得正确的属性值。那么从页面代码后面设置自定义控件属性值的正确位置是什么?

谢谢

2 个答案:

答案 0 :(得分:2)

PreInit仅适用于页面,因此如果您需要从页面设置某些内容,则可以使用。 Init以相反的顺序触发,首先用于最低级别的控制,然后冒泡到页面以进行最后一次触发。所有其他事件首先从页面开始发射。

如果PreInit可以使用,请使用它。否则,另一个解决方法是让属性检查值是否为null且未提供,如果不是,则可能触发需要您提供它的NeedValue事件。

HTH。

答案 1 :(得分:0)

假设您处于2.0或更高版本,PreInit页面级事件适用于这些类型的事件。

如果你不能直接从那里写它 - 你的控件之类的东西可能不存在 - 你可以使用HttpContext.Items将值存储在控件可以从中获取的位置。但那真是个烂摊子。