Jar*_*red 6 asp.net events webforms
我正在尝试完全理解WebForm事件模型(不是页面生命周期,而是在.aspx或.ascx文件中以声明方式指定事件的连接方式.
以Button控件为例.它有一个可以在代码隐藏中连接的Click事件,但它在.aspx/.ascx文件中有一个"OnClick"事件.
我使用了.NET Reflector,Button控件有一个PROTECTED OnClick方法,但是不应该由.aspx/.ascx分配.除非我错过了什么.
有谁知道为什么添加"On"前缀?
只是澄清一点:我理解命名约定有效.我想知道.aspx/.ascx中的"OnClick"如何被翻译成.Click + = new EventHandler(blahName); 即如果我创建一个ControlChanged EventHandler,我是否需要做一些特殊的事情来让OnControlChanged在.aspx/.ascx文件中有效显示?
它不仅仅是一个命名约定,因为用户控件中的事件会自动在声明性语法中获得“On”前缀。
例如,我有一个声明 ProjectSelected 事件的 UserControl。为了以声明方式添加处理程序,我设置了 OnProjectSelected 属性。
用户控制:
public event EventHandler<ProjectSelectedEventArgs> ProjectSelected;
Run Code Online (Sandbox Code Playgroud)
以声明方式添加处理程序:
<user:ProjectList id="uxProjectList" runat="server"
OnProjectSelected="uxProjectList_ProjectSelected" />
Run Code Online (Sandbox Code Playgroud)
在后面的代码中添加处理程序:
uxProjectList.ProjectSelected += uxProjectList_ProjectSelected;
Run Code Online (Sandbox Code Playgroud)
这让我很困惑,一次是当我无法弄清楚为什么该事件不能以声明方式可用时,另一次是当我将事件命名为“OnProjectSelected”并且属性变为“OnOnProjectSelected”时。
| 归档时间: |
|
| 查看次数: |
600 次 |
| 最近记录: |