如何在任何其他文件之前调用usercontrol文件

本文关键字:文件 调用 usercontrol 其他 任何 | 更新日期: 2023-09-27 18:13:00

我有一个包含各种用户控件的母版页。我有一个页面叫mypage。继承母版页的Aspx。那么是否可以在mypage之前调用用户控件的.cs文件?Aspx的。cs文件?

如何在任何其他文件之前调用usercontrol文件

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

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

在页面和嵌套用户控件中调用相同事件的顺序可以从上到下(master到大多数嵌套用户控件),反之亦然。这取决于发生在哪个事件。也就是说,有些事件首先在页面中运行,然后在嵌套控件中运行,而其他事件则完全相反:首先在嵌套控件中运行,然后在页面中运行。

所以你的问题应该更具体,比如"我想在页面中的其他代码运行之前运行用户控件的这段代码"。然后,您只需在每个事件中选择正确的事件处理程序,以正确的顺序运行它。您还必须考虑调用每个事件之前和之后发生的情况(例如,在PreInitViewData还不可用)。

我有一个相关的答案,它解释了何时连接事件处理程序,以及为什么,它参考了一个类似于您的问题,但更具体。如果你读了那个答案,特别是其中包含的"页面生命周期"链接,你就会明白你必须做些什么来解决你的问题。特别是最后一个链接,我在这里复制:

请看这张图,可以看到Page &儿童事件:ASP。. NET页面生命周期图