c# - 何时触发自定义控件事件?

标签 c# asp.net events page-lifecycle

我正在创建一个自定义控件。假设我正在重新发明轮子并创建一个派生自 UserControl 类的自定义 Button 控件(仅作为示例)

嗯,它当然有一个 Click 事件处理程序。现在我的问题是,我什么时候调用这个事件处理程序?我知道它会在 Pages OnLoad 和 OnLoadComplete 之间的某个时间发生,但我不太确定可以连接到什么事件,以便与其他控件事件同时引发 Click 事件。

您打算什么时候调用自定义控件事件?

最佳答案

一般来说,您应该在知道基础事件发生后立即引发该事件。

例如,ASP.NET Button 控件如何知道用户单击了它?它实现了IPostBackEventHandler和 RaisePostBackEvent() 方法。如果存在与控件关联的回发事件数据,则将调用该方法。我相信关联是由它呈现的“名称”属性决定的。然后在 RaisePostBackEvent() 中引发 Click 事件。

您需要回答的问题是:您的控件如何知道它应该引发其事件?一旦您发现我们的其余部分就很容易了。

如果您的控件与现有 ASP.NET 控件有相似之处,我会推荐 stepping through the ASP.NET source code并了解这些控件如何工作。

关于c# - 何时触发自定义控件事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2113871/

相关文章:

javascript - 在滚动时在 javascript (window.open) 中打开一个窗口而不会被弹出窗口阻止程序阻止

javascript - DrawSVG按钮: How to implement download

c# - 绑定(bind)到来自两个不同类的属性值

c# - ASP.Net - 如何包含另一个项目中的嵌入式 JavaScript 文件?

asp.net - 编辑asp.net razor cshtml 文件需要重新编译吗?

asp.net - 使用 CSS 的 Visual Studio 设计 View

.net - 在进程关闭期间处理 ObjectDisposedException 和类似异常?

c# - 在每个非查询或整个连接之前打开连接?

c# - 对 GridView 进行排序时出现“System.StackOverflowException”

C# - 生成 10 个字符的随机字母数字字符串的最有效方法是什么?