Выставить событие 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);
}
}
Все, что вы действительно делаете, это оборачиваете оригинальное событие и повторно поднимаете его.
РЕДАКТИРОВАТЬ: см. Ответ Брайана Рудольфа. На самом деле это очень простой способ сделать это.