Здравствуйте, 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 контола, который инициировал постбэк был такой же, как и у контрола, который вы создаете в начале обработки запроса. Иначе обработчик просто не вызовется.