перехватить событие динамического контрола
От: rwety  
Дата: 29.01.09 11:07
Оценка:
как перехватить событие динамического контрола в Ajax приложении?
Re: перехватить событие динамического контрола
От: игппук Беларусь  
Дата: 30.01.09 16:03
Оценка:
он должен быть добавлен в коллекцию контролов каждый раз при загрузке страницы. причем все ID контролов должны быть повторены.
проклятый антисутенерский закон
Re[2]: перехватить событие динамического контрола
От: rwety  
Дата: 30.01.09 16:53
Оценка:
Здравствуйте, игппук, Вы писали:

И>он должен быть добавлен в коллекцию контролов каждый раз при загрузке страницы. причем все ID контролов должны быть повторены.

пример кода плиз))
у меня страница полностью не перегружается.только ее часть.->она загружается только раз.
значит если добавляеш контрол то и событие добавляется автоматом?
Re[3]: перехватить событие динамического контрола
От: игппук Беларусь  
Дата: 30.01.09 18:27
Оценка:
Здравствуйте, rwety, Вы писали:

R>у меня страница полностью не перегружается.только ее часть.->она загружается только раз.

R>значит если добавляеш контрол то и событие добавляется автоматом?

postback событие в любом случае будет отправлено на сервер, и сервер его получит. вопрос в том, получит ли это событие обработчик на вашем динамическом контроле. для того, чтобы он его получил, контрол должен быть загружен в форму. тогда сервер сможет его обнаружить и передать ему ивент от клиента.

пример кода привести сейчас не смогу, так как его нет под руками. но принцип, надеюсь, вам понятен.
проклятый антисутенерский закон
Re[4]: перехватить событие динамического контрола
От: rwety  
Дата: 30.01.09 21:53
Оценка:
Здравствуйте, игппук, Вы писали:

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


R>>у меня страница полностью не перегружается.только ее часть.->она загружается только раз.

R>>значит если добавляеш контрол то и событие добавляется автоматом?

И>postback событие в любом случае будет отправлено на сервер, и сервер его получит. вопрос в том, получит ли это событие обработчик на вашем динамическом контроле. для того, чтобы он его получил, контрол должен быть загружен в форму. тогда сервер сможет его обнаружить и передать ему ивент от клиента.


И>пример кода привести сейчас не смогу, так как его нет под руками. но принцип, надеюсь, вам понятен.


принцип я понял. непонял каким способом его загрузить на форму.
пробовал form1.Controls.Add(btn), но мне нужно его разместить на Panel, если его добавить в Panel controls, то это уже будет не то.
кароче говоря, у меня пока не выходит.
как его загрузить на форму
Re[5]: перехватить событие динамического контрола
От: BlackKite Украина www.os-it.com
Дата: 08.02.09 22:33
Оценка:
Здравствуйте, rwety, Вы писали:

R>Здравствуйте, игппук, Вы писали:


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


R>>>у меня страница полностью не перегружается.только ее часть.->она загружается только раз.

R>>>значит если добавляеш контрол то и событие добавляется автоматом?

И>>postback событие в любом случае будет отправлено на сервер, и сервер его получит. вопрос в том, получит ли это событие обработчик на вашем динамическом контроле. для того, чтобы он его получил, контрол должен быть загружен в форму. тогда сервер сможет его обнаружить и передать ему ивент от клиента.


И>>пример кода привести сейчас не смогу, так как его нет под руками. но принцип, надеюсь, вам понятен.


R>принцип я понял. непонял каким способом его загрузить на форму.

R>пробовал form1.Controls.Add(btn), но мне нужно его разместить на Panel, если его добавить в Panel controls, то это уже будет не то.
R>кароче говоря, у меня пока не выходит.
R>как его загрузить на форму

При использовании postback в независимости от того AJAX приложение или нет, на стороне сервера обработка запроса проходит абсолютно все стадии. Динамический контрол нужно создавать всегда в Page_Init или Page_Load иначе обработчик события не будет вызван. Обычно для динамических контролов существует контрол PlaceHolder, который является своеобразным контейнером, который можно поместить внутри панели, например. Добавляется контрол в PlaceHolder примерно так:
   placeHolderInstance.Controls.Add(button);


Для динамических контролов нужно следить, чтобы UniqueID контола, который инициировал постбэк был такой же, как и у контрола, который вы создаете в начале обработки запроса. Иначе обработчик просто не вызовется.
Re[6]: перехватить событие динамического контрола
От: rwety  
Дата: 08.02.09 22:53
Оценка:
Здравствуйте, BlackKite, Вы писали:

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


R>>Здравствуйте, игппук, Вы писали:


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


R>>>>у меня страница полностью не перегружается.только ее часть.->она загружается только раз.

R>>>>значит если добавляеш контрол то и событие добавляется автоматом?

И>>>postback событие в любом случае будет отправлено на сервер, и сервер его получит. вопрос в том, получит ли это событие обработчик на вашем динамическом контроле. для того, чтобы он его получил, контрол должен быть загружен в форму. тогда сервер сможет его обнаружить и передать ему ивент от клиента.


И>>>пример кода привести сейчас не смогу, так как его нет под руками. но принцип, надеюсь, вам понятен.


R>>принцип я понял. непонял каким способом его загрузить на форму.

R>>пробовал form1.Controls.Add(btn), но мне нужно его разместить на Panel, если его добавить в Panel controls, то это уже будет не то.
R>>кароче говоря, у меня пока не выходит.
R>>как его загрузить на форму

BK>При использовании postback в независимости от того AJAX приложение или нет, на стороне сервера обработка запроса проходит абсолютно все стадии. Динамический контрол нужно создавать всегда в Page_Init или Page_Load иначе обработчик события не будет вызван. Обычно для динамических контролов существует контрол PlaceHolder, который является своеобразным контейнером, который можно поместить внутри панели, например. Добавляется контрол в PlaceHolder примерно так:

BK>
BK>   placeHolderInstance.Controls.Add(button);
BK>


BK>Для динамических контролов нужно следить, чтобы UniqueID контола, который инициировал постбэк был такой же, как и у контрола, который вы создаете в начале обработки запроса. Иначе обработчик просто не вызовется.


спасибо. у меня все получилось
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.