有趣的 ASP.NET 生命周期事件触发错误

发布于 2024-10-21 16:06:22 字数 298 浏览 1 评论 0原文

我遇到了一个有趣的生命周期事件错误,想象一下这样的代码层次结构:

Page 1
   User Control 2
      User Control 3

其中每个项目都是此顺序的子项目。我希望 Page 1 首先触发其 oninit,然后是 User Control 2,然后是 User Control 3。但这并没有发生;实际上,在这种情况下,用户控件 3 首先触发 init。我将其中的每一个都继承自一个特殊的基类,并且有一些需要按顺序运行的管道代码。知道为什么会发生这种情况吗?

谢谢。

I'm having an interesting lifecycle event error, imagine a code hierarchy like this:

Page 1
   User Control 2
      User Control 3

Where each of these items is a child in this order. I expect Page 1 to fire its oninit first, then User Control 2, then User Control 3. But this doesn't happen; actually, in this scenario, User Control 3 fires init first. I have each of these inheriting from a special base class, and have some plumbing code that needs to run in order. Any idea why this is happening?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

心病无药医 2024-10-28 16:06:22

您所看到的并不是错误。发生这种情况是因为这就是它应该发生的方式

个体的Init事件
控件发生在 Init 之前
页面的事件。

What you're seeing isn't an error. It's happening because that's the way it's supposed to happen:

The Init event of individual
controls occurs before the Init
event of the page.

童话 2024-10-28 16:06:22

正如其他人所指出的,Init 事件是从下往上触发的,而后来的事件(例如 Load)是从上往下触发的。

As pointed out by others, the Init events fire from the bottom up, while later events (such as Load) fire from the top down.

鹊巢 2024-10-28 16:06:22

如何引发事件的一般规则是,初始化事件从最内层控件到最外层控件引发,所有其他事件从最外层控件到最内层控件引发。

The general rule for how events are raised is that the initialization events are raised from the innermost control to the outermost one, and all other events are raised from the outermost control to the innermost one.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文