Re[7]: События элемента управления не срабатывают :(
От: ksg71 Германия  
Дата: 04.03.05 14:44
Оценка: +1
Здравствуйте, aset, Вы писали:

A>Здравствуйте, ksg71, Вы писали:


K>>Здравствуйте, aset, Вы писали:


A>>>Здравствуйте, ksg71, Вы писали:


A>>>>>
A>>>>>MyControl myControl = (MyControl)LoadControl("MyControl.ascx");
A>>>>>myControl.SetValues(nProp1, nProp2);
A>>>>>PlaceHolder1.Controls.Add(myControl);
A>>>>>



K>>>>А что за события в контроле?


A>>>Там DataGrid с TemplateColumn с RadioButton'ами, в нем на ItemCreated вешается обработчик этих радиобатонов. Вот этот обработчик после Prev и Next до постбэка не вызывается.

A>>>Еще есть ItemCommand, там тоже обработчик висит.


K>>Структура взаимодействия все равно не понятна, возможно проблема в том,

K>>что UserControl грузится в Page_Load а не в Page_Init, или еще в чем
K>>нибудь, на всякий случай почитай

A>Ну, вкратце можно сказать так — при вызове Page_Load'а контрол отображается, а при нажатии Next или Prev надо переотображать его снова. То есть, очищать плейсхолдер и делать Controls.Add(). Проблема в том, что при нажатии этих Next/Prev сначала вызывается Page_Load и успевает перехватить на себя события предыдущего состояния элемента.


Ну так, конечно, никакие события в контроле работать не будут, любой динамически добавляемый контрол нужно добавлять до загрузки ViewState
и PostBack данных, чтобы события в нем работали правильно.
Я ссылочку выше давал, там про это подробно с картинками
Das Reich der Freiheit beginnt da, wo die Arbeit aufhört. (c) Karl Marx
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.