如果我有一个DropDownList
构成 CompositeControl 一部分的控件,我如何将SelectedIndexChanged
事件公开给正在使用的 aspx 页面?
谢谢
如果我有一个DropDownList
构成 CompositeControl 一部分的控件,我如何将SelectedIndexChanged
事件公开给正在使用的 aspx 页面?
谢谢
有一种更简单的方法是直接通过。
试试这个:
public event EventHandler SelectedIndexChanged
{
add { this.TargetControl.SelectedIndexChanged += value; }
remove { this.TargetControl.SelectedIndexChanged -= value; }
}
[编辑] 除非你当然需要注入自定义逻辑。
这就是你要做的。首先声明一个这样的事件:
public event EventHandler SelectedIndexChanged;
然后,在内部,连接到 DropDownList 的 SelectedIndexChangedEvent。在您的事件处理程序中执行以下操作:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.SelectedIndexChanged != null)
{
this.SelectedIndexChanged(sender, e);
}
}
您真正要做的就是包装原始事件并重新提出它。
编辑:见布赖恩鲁道夫的回答。这实际上是一种非常简单的方法。