如何在任何其他文件之前调用用户控制文件?

时间:2014-07-14 09:09:24

标签: c# asp.net user-controls

我有一个包含各种usercontrol的母版页。我有一个页面说mypage.aspx继承了母版页。然后可以在mypage.aspx'之前调用usercontrol的.cs文件。 s .cs文件?

1 个答案:

答案 0 :(得分:1)

你的“调用.cs文件”这个概念完全错了。 (.cs)文件背后的代码包含沿页面生命周期运行的代码,这些代码基本上是一个接一个发生的事件,如InitLoadClickChanged个事件处理程序,PreRender ...

因此,正确的是询问事件处理程序是在之前的母版页,页面还是用户控件中运行。或者在用户控件中选择哪个事件,以便它在页面中的其他代码之前运行。

在页面和嵌套用户控件中调用相同事件的顺序可以是从上到下(从主到最嵌套的用户控件),也可以是反之。这取决于事件的发生。即有些事件首先在页面中运行,然后在嵌套控件中运行,而其他事件则相反:先在嵌套控件中运行,然后在页面中运行。

所以你的问题应该更加具体,比如“我希望在页面中的其他代码运行之前运行用户控件的代码”。然后,您只需在每个中选择正确的事件处理程序,以正确的顺序运行它。您还必须考虑在调用每个事件之前和之后发生的事情(例如,PreInit ViewData尚未提供)。

我有一个related answer,它解释了何时连接事件处理程序,以及为什么会引用与您类似的问题,但更具体。如果您阅读了该答案,特别是附带的“页面生命周期”链接,您将了解解决问题所需的操作。特别是最后一个链接,我在这里重现:

  

查看此图表以查看Page&amp ;;的执行顺序。儿童活动:ASP.NET Page Life Cycle Diagram