在 CompositeControl 中公开 OnSelectedIndexChanged 事件

发布于 2024-07-11 17:21:12 字数 134 浏览 6 评论 0原文

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

谢谢

If I have a DropDownList control that makes up part of a CompositeControl how can I expose the SelectedIndexChanged event to the consuming aspx page?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

拿命拼未来 2024-07-18 17:21:12

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

试试这个:

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

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

There is a much simpler way that is a direct pass through.

Try this:

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

[Edit] Unless of course you need to inject custom logic.

油焖大侠 2024-07-18 17:21:12

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

public event EventHandler SelectedIndexChanged;

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

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

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

编辑:请参阅布莱恩·鲁道夫的回答。 事实上,这是一种非常简单的方法。

Here's what you do. First declare an event like this:

public event EventHandler SelectedIndexChanged;

Then, internally, hook up to the DropDownList's SelectedIndexChangedEvent. In your event handler do something like this:

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

All you're really doing is wrapping the original event and re-raising it.

EDIT: See Brian Rudolph's answer. That's in fact a much simple way of doing it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文