Rob*_*per 5 c# asp.net user-controls attributes
好吧,我有谷歌这个,并已经期待一个大胖不!但我想我应该问,因为我知道有时可能会出现在人们头脑中潜伏着的奇怪的知识宝石^ _ ^
我正在通过书中的一些练习来学习,这个特别的练习是用户控制.我拼凑了一个控件,并希望为它设置DefaultEvent(为之前的控件完成此操作)所以当我双击它时,创建的默认事件是我指定的任何内容.
注意:这是标准用户控件(.ascx),而不是自定义呈现控件.
这是类和事件定义:
[System.ComponentModel.DefaultEvent("OKClicked")]
public partial class AddressBox : System.Web.UI.UserControl
{
public event EventHandler OKClicked;
Run Code Online (Sandbox Code Playgroud)
现在,当我在ASPX页面上双击控件时,会创建以下内容:
protected void AddressBox1_Load(object sender, EventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)
不是我所期待的!所以,我的问题:
旁注:我们如何在代码中加下划线?我似乎无法放入和逃避char?
这是一个可能的答案,无需测试(就像马丁所做的那样)。
在反射器中,您将看到 DefaultEventAttribute 允许自身被继承。在反射器中,您会看到 UserControl 类将其默认事件设置为 Load 事件。
所以可能的原因是,即使你用 OKClick 的默认事件装饰你的用户控件,VS 可能仍然认为默认事件是 load,因为它是从默认事件是 Load 的 UserControl 继承的。
只是对可能发生的情况的高级猜测。
| 归档时间: |
|
| 查看次数: |
1421 次 |
| 最近记录: |