如果我有一个构成CompositeControl一部分的DropDownList
控件,我怎样才能将SelectedIndexChanged
事件公开给消费的aspx页面?
由于
答案 0 :(得分:11)
有一种更为简单的直接传递方式。
试试这个:
public event EventHandler SelectedIndexChanged
{
add { this.TargetControl.SelectedIndexChanged += value; }
remove { this.TargetControl.SelectedIndexChanged -= value; }
}
[编辑]除非您需要注入自定义逻辑。
答案 1 :(得分:4)
这是你做的。首先声明一个这样的事件:
public event EventHandler SelectedIndexChanged;
然后,在内部,连接到DropDownList的SelectedIndexChangedEvent。在您的事件处理程序中执行以下操作:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.SelectedIndexChanged != null)
{
this.SelectedIndexChanged(sender, e);
}
}
你真正做的就是包装原始事件并重新提升它。
编辑:请参阅Brian Rudolph的回答。事实上,这是一种非常简单的方法。