События элемента управления не срабатывают :(
От: aset  
Дата: 03.03.05 12:58
Оценка:
Здрасьте!

Ситуация, в общем, такая: есть элемент управления (MyControl.ascx), на самой странице два линк-батона, Prev и Next. Есть метод LoadData, который забивает в плейсхолдере на странице этот MyControl.ascx с данными. Prev, Next и Page_Load его вызывают.
При первой загрузке страницы события этого MyControl срабатывают сразу, а при нажатии Next (данные в контроле меняются) — цепляют только после постбэка. Как быть?
RE: События элемента управления не срабатывают :(
От: Аноним  
Дата: 03.03.05 15:54
Оценка:
Здрасьте!

Ситуация, в общем, такая: есть элемент управления (MyControl.ascx), на самой странице два линк-батона, Prev и Next. Есть метод LoadData, который забивает в плейсхолдере на странице этот MyControl.ascx с данными. Prev, Next и Page_Load его вызывают.
При первой загрузке страницы события этого MyControl срабатывают сразу, а при нажатии Next (данные в контроле меняются) — цепляют только после постбэка. Как быть?
а грузишь MyControl.ascx как?Вспышка в темноте, яркий свет в глазах,
Я ослеп на миг.
Кто-то так хотел разбудить мой страх,
Разбудить мой крик.
Снова все мои желанья, что я сжег дотла,
Оживают и зовут меня…


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[2]: События элемента управления не срабатывают :(
От: aset  
Дата: 04.03.05 11:59
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здрасьте!


А>Ситуация, в общем, такая: есть элемент управления (MyControl.ascx), на самой странице два линк-батона, Prev и Next. Есть метод LoadData, который забивает в плейсхолдере на странице этот MyControl.ascx с данными. Prev, Next и Page_Load его вызывают.

А>При первой загрузке страницы события этого MyControl срабатывают сразу, а при нажатии Next (данные в контроле меняются) — цепляют только после постбэка. Как быть?
А>а грузишь MyControl.ascx как?Вспышка в темноте, яркий свет в глазах,
А>Я ослеп на миг.
А>Кто-то так хотел разбудить мой страх,
А>Разбудить мой крик.
А>Снова все мои желанья, что я сжег дотла,
А>Оживают и зовут меня…

А>
данное сообщение получено с www.gotdotnet.ru

А>ссылка на оригинальное сообщение


MyControl myControl = (MyControl)LoadControl("MyControl.ascx");
myControl.SetValues(nProp1, nProp2);
PlaceHolder1.Controls.Add(myControl);
Re[3]: События элемента управления не срабатывают :(
От: ksg71 Германия  
Дата: 04.03.05 12:06
Оценка:
Здравствуйте, aset, Вы писали:

A>Здравствуйте, Аноним, Вы писали:


А>>Здрасьте!


А>>Ситуация, в общем, такая: есть элемент управления (MyControl.ascx), на самой странице два линк-батона, Prev и Next. Есть метод LoadData, который забивает в плейсхолдере на странице этот MyControl.ascx с данными. Prev, Next и Page_Load его вызывают.

А>>При первой загрузке страницы события этого MyControl срабатывают сразу, а при нажатии Next (данные в контроле меняются) — цепляют только после постбэка. Как быть?
А>>а грузишь MyControl.ascx как?Вспышка в темноте, яркий свет в глазах,
А>>Я ослеп на миг.
А>>Кто-то так хотел разбудить мой страх,
А>>Разбудить мой крик.
А>>Снова все мои желанья, что я сжег дотла,
А>>Оживают и зовут меня…

А>>
данное сообщение получено с www.gotdotnet.ru

А>>ссылка на оригинальное сообщение


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



А что за события в контроле?
Das Reich der Freiheit beginnt da, wo die Arbeit aufhört. (c) Karl Marx
Re[4]: События элемента управления не срабатывают :(
От: aset  
Дата: 04.03.05 13:44
Оценка:
Здравствуйте, ksg71, Вы писали:

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



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


Там DataGrid с TemplateColumn с RadioButton'ами, в нем на ItemCreated вешается обработчик этих радиобатонов. Вот этот обработчик после Prev и Next до постбэка не вызывается.
Еще есть ItemCommand, там тоже обработчик висит.
Re[5]: События элемента управления не срабатывают :(
От: ksg71 Германия  
Дата: 04.03.05 14:11
Оценка:
Здравствуйте, 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, там тоже обработчик висит.


Структура взаимодействия все равно не понятна, возможно проблема в том,
что UserControl грузится в Page_Load а не в Page_Init, или еще в чем
нибудь, на всякий случай почитай
Das Reich der Freiheit beginnt da, wo die Arbeit aufhört. (c) Karl Marx
RE: Re[4]: События элемента управления не срабатывают :(
От: Аноним  
Дата: 04.03.05 14:12
Оценка:
Здравствуйте, ksg71, Вы писали:

A>>

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


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


Там DataGrid с TemplateColumn с RadioButton'ами, в нем на ItemCreated вешается обработчик этих радиобатонов. Вот этот обработчик после Prev и Next до постбэка не вызывается.
Еще есть ItemCommand, там тоже обработчик висит.
а контрол при каждом постбэке грузишь грузишь?Вспышка в темноте, яркий свет в глазах,
Я ослеп на миг.
Кто-то так хотел разбудить мой страх,
Разбудить мой крик.
Снова все мои желанья, что я сжег дотла,
Оживают и зовут меня…


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[6]: События элемента управления не срабатывают :(
От: aset  
Дата: 04.03.05 14:34
Оценка:
Здравствуйте, 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>нибудь, на всякий случай почитай

Ну, вкратце можно сказать так — при вызове Page_Load'а контрол отображается, а при нажатии Next или Prev надо переотображать его снова. То есть, очищать плейсхолдер и делать Controls.Add(). Проблема в том, что при нажатии этих Next/Prev сначала вызывается Page_Load и успевает перехватить на себя события предыдущего состояния элемента.
Re[5]: События элемента управления не срабатывают :(
От: aset  
Дата: 04.03.05 14:35
Оценка:
Здравствуйте, Аноним, Вы писали:

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


A>>>

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


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


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

А>Еще есть ItemCommand, там тоже обработчик висит.
А>а контрол при каждом постбэке грузишь грузишь?

Да, иначе он просто уничтожается.
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
Re[8]: События элемента управления не срабатывают :(
От: aset  
Дата: 04.03.05 14:48
Оценка:
Здравствуйте, ksg71, Вы писали:

K>Ну так, конечно, никакие события в контроле работать не будут, любой динамически добавляемый контрол нужно добавлять до загрузки ViewState

K>и PostBack данных, чтобы события в нем работали правильно.
K>Я ссылочку выше давал, там про это подробно с картинками

Если не затруднит, какой последовательности стоит придерживаться, в общих чертах, а то я запутался
Re[9]: События элемента управления не срабатывают :(
От: ksg71 Германия  
Дата: 04.03.05 14:55
Оценка:
Здравствуйте, aset, Вы писали:

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


K>>Ну так, конечно, никакие события в контроле работать не будут, любой динамически добавляемый контрол нужно добавлять до загрузки ViewState

K>>и PostBack данных, чтобы события в нем работали правильно.
K>>Я ссылочку выше давал, там про это подробно с картинками

A>Если не затруднит, какой последовательности стоит придерживаться, в общих чертах, а то я запутался



Добавлять контрол в PlaceHolder в обработчике Page_Init,
а в обработчиках Page_Load и кнопок искать его в PlaceHolder'e
методом FindControl и использовать
Das Reich der Freiheit beginnt da, wo die Arbeit aufhört. (c) Karl Marx
RE: Re[5]: События элемента управления не срабатывают :(
От: Аноним  
Дата: 04.03.05 14:47
Оценка:
Да, иначе он просто уничтожается.
А при биндинге !IsPostBack проверяешь?Из предписания Верховного Суда:
1) Главе ЦИК — признать выборы недействительными...
2) Компьютерному отделу ЦИК — удалить Януковича из папки Избранное...


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[10]: События элемента управления не срабатывают :(
От: aset  
Дата: 04.03.05 17:12
Оценка:
Здравствуйте, ksg71, Вы писали:

K>Добавлять контрол в PlaceHolder в обработчике Page_Init,

K>а в обработчиках Page_Load и кнопок искать его в PlaceHolder'e
K>методом FindControl и использовать

Все равно не получилось, хотя идея очень хорошая.
Дело в том, что до прихода в обработчик кнопок Next и Prev вьюстейт для контрола успевает сохраниться после вызовов обоих Load'ов, и все евенты исчезают. Убил уже два дня на эту проблему, сдача проекта, блин, откладывается, а ведь какой пустяк...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.