2009-07-04 44 views
0

这个问题似乎是微不足道的,但我没有找到谷歌的答案。如何管理asp.net中触发事件的顺序?

如果我有多个独立的网页控件,例如: DropDownLists和网格,我需要在另一个事件处理程序中使用来自一个事件处理程序的回发信息,因此我需要在aonther之后正确地启动它。

我看到很多间接的方法来做到这一点 - 通过提高自定义事件等,但可能有更好更简单的方法来做到这一点?

UPD:如果我需要在另一个控件中使用回发​​信息 - 例如RadGrid.NeedDataSource数据绑定处理程序中的dropdownlist.SelectedValue - 发送它的常用方法是什么?

回答

1

据我所知,ASP.Net中的默认事件触发机制并不保证任何顺序。所以你应该设计你的程序流程,以便你不依赖它。如果你能提及你的确切需求,那么可以考虑一下。

4

不幸的是,您不应该构建依赖点火顺序的事件处理程序。这不是推荐的做法。从ASP.NET Web Server Control Event Model

你不应该创建应用程序 逻辑依赖于改变事件 按照特定的顺序 被提出,除非你有详细的 网页事件处理的知识。详情请参阅 请参阅ASP.NET Page Life Cycle Overview

如果您依赖于此,那么您的设计中可能存在缺陷。如果您发布更多详细信息,我们可以看看我们是否可以帮助您解决问题。

编辑::Rudnev,我以前使用过RadGrid,但我不记得NeedDataSource事件的确切目的。将下拉列表设置为一旦更改后自动回发就足够了,然后在事件处理程序中,将Grid的DataSource设置为适当的源,并在其上调用DataBind()?

+0

好吧,讨论具体案例很复杂。我发现没有直接的方法,所以我做了一个不需要回发的ajaxified radgrid。但仍然主要的问题是没有答案 - 我们可以在另一个处理程序中使用来自一个(或多个)处理程序的回发信息,如果答案是 - 否,我们甚至不应该尝试什么是最简单的解决方法? – rudnev 2009-07-04 07:30:22

0

如果一个事件处理程序依赖于另一个事件处理程序的结果,那么概念上它所响应的“事件”就是第一个事件的完成。我认为你不能适当地提出一个自定义事件或手动调用方法链。

相关问题