Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ASP.NET Новый топик    Ответить
 Приведение типов ASP контролов  [new]
Alex_BBB
Member

Откуда:
Сообщений: 1199
Есть класс отнаследованный от ModalPopupExtender (на самом деле не важно)

base.TargetControl - ссылается на ASP контрол (кнопка, linkbutton, imgbutton и т.п.).
В своем отнаследованном классе пытаюсь повесить обработчик OnClientClick.

Если мне заранее известен тип base.TargetControl, то повесить обработчик можно таким образом:

// Я знаю что base.TargetControl ссылается на LinkButton
LinkButton ll = (LinkButton)base.TargetControl;
ll.OnClientClick = "alert('AsA');";

Как решить задачу в общем случае - когда мне заранее не известен тип base.TargetControl?
Спасибо.
9 окт 08, 11:38    [6283588]     Ответить | Цитировать Сообщить модератору
 Re: Приведение типов ASP контролов  [new]
alvalandr
Member

Откуда: Омск
Сообщений: 189
Покопайте в сторону рефлексии
9 окт 08, 11:51    [6283708]     Ответить | Цитировать Сообщить модератору
 Re: Приведение типов ASP контролов  [new]
Alex_BBB
Member

Откуда:
Сообщений: 1199
Вот так пытаюсь
Type tt = base.TargetControl.GetType();
object oo = Activator.CreateInstance(tt);

System.Reflection.PropertyInfo pp = tt.GetProperty("OnClientClick");
pp.SetValue(oo,"alert('AsA');",null);

Компилируется и работает без ошибок, только никакого Alert-а не появляется (
9 окт 08, 12:11    [6283920]     Ответить | Цитировать Сообщить модератору
 Re: Приведение типов ASP контролов  [new]
Alex_BBB
Member

Откуда:
Сообщений: 1199
Вот таки образом

Type tt = base.TargetControl.GetType();

System.Reflection.PropertyInfo pp = tt.GetProperty("OnClientClick");
pp.SetValue(base.TargetControl, "alert('AsA');", null);
9 окт 08, 12:28    [6284009]     Ответить | Цитировать Сообщить модератору
Все форумы / ASP.NET Ответить