如果我有构成CompositeControl的一部分的DropDownList
控件,我怎样才能将SelectedIndexChanged
事件暴露给消费aspx页面?在CompositeControl中公开OnSelectedIndexChanged事件
谢谢
如果我有构成CompositeControl的一部分的DropDownList
控件,我怎样才能将SelectedIndexChanged
事件暴露给消费aspx页面?在CompositeControl中公开OnSelectedIndexChanged事件
谢谢
有一个更简单的方法是直接通过。
试试这个:
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);
}
}
所有你真正做的是包装原始事件并重新提升它。
编辑:请参阅布赖恩鲁道夫的答案。这实际上是一个很简单的方法。
好的,有道理。我和代表们陷入了混乱之中。这正是我所期待的。我会在早上给它一个镜头 - 谢谢! – NikolaiDante 2008-12-18 19:13:22
像魅力一样工作。非常感谢你! – NikolaiDante 2008-12-19 09:12:51