4

如果我有一个DropDownList构成 CompositeControl 一部分的控件,我如何将SelectedIndexChanged事件公开给正在使用的 aspx 页面?

谢谢

4

2 回答 2

11

有一种更简单的方法是直接通过。

试试这个:

    public event EventHandler SelectedIndexChanged
    {
        add { this.TargetControl.SelectedIndexChanged += value; }
        remove { this.TargetControl.SelectedIndexChanged -= value; }
    }

[编辑] 除非你当然需要注入自定义逻辑。

于 2008-12-18T19:57:45.290 回答
4

这就是你要做的。首先声明一个这样的事件:

public event EventHandler SelectedIndexChanged;

然后,在内部,连接到 DropDownList 的 SelectedIndexChangedEvent。在您的事件处理程序中执行以下操作:

        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this.SelectedIndexChanged != null)
            {
                this.SelectedIndexChanged(sender, e);
            }
        }

您真正要做的就是包装原始事件并重新提出它。

编辑:见布赖恩鲁道夫的回答。这实际上是一种非常简单的方法。

于 2008-12-18T19:04:54.913 回答