Выставить событие OnSelectedIndexChanged в CompositeControl

Если у меня есть DropDownList элемент управления, который составляет часть CompositeControl, как я могу выставить SelectedIndexChanged событие для потребляющей страницы aspx?

Спасибо

2 ответа

Решение

Существует гораздо более простой способ - прямой переход.

Попробуй это:

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

[Редактировать] Если, конечно, вам не нужно вводить пользовательскую логику.

Вот что ты делаешь. Сначала объявите событие как это:

public event EventHandler SelectedIndexChanged;

Затем внутренне подключитесь к SelectedIndexChangedEvent DropDownList. В вашем обработчике событий сделайте что-то вроде этого:

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

Все, что вы действительно делаете, это оборачиваете оригинальное событие и повторно поднимаете его.

РЕДАКТИРОВАТЬ: см. Ответ Брайана Рудольфа. На самом деле это очень простой способ сделать это.

Другие вопросы по тегам