Здравствуйте, игппук, Вы писали:
И>он должен быть добавлен в коллекцию контролов каждый раз при загрузке страницы. причем все ID контролов должны быть повторены.
пример кода плиз))
у меня страница полностью не перегружается.только ее часть.->она загружается только раз.
значит если добавляеш контрол то и событие добавляется автоматом?
Здравствуйте, rwety, Вы писали:
R>у меня страница полностью не перегружается.только ее часть.->она загружается только раз. R>значит если добавляеш контрол то и событие добавляется автоматом?
postback событие в любом случае будет отправлено на сервер, и сервер его получит. вопрос в том, получит ли это событие обработчик на вашем динамическом контроле. для того, чтобы он его получил, контрол должен быть загружен в форму. тогда сервер сможет его обнаружить и передать ему ивент от клиента.
пример кода привести сейчас не смогу, так как его нет под руками. но принцип, надеюсь, вам понятен.
Здравствуйте, игппук, Вы писали:
И>Здравствуйте, rwety, Вы писали:
R>>у меня страница полностью не перегружается.только ее часть.->она загружается только раз. R>>значит если добавляеш контрол то и событие добавляется автоматом?
И>postback событие в любом случае будет отправлено на сервер, и сервер его получит. вопрос в том, получит ли это событие обработчик на вашем динамическом контроле. для того, чтобы он его получил, контрол должен быть загружен в форму. тогда сервер сможет его обнаружить и передать ему ивент от клиента.
И>пример кода привести сейчас не смогу, так как его нет под руками. но принцип, надеюсь, вам понятен.
принцип я понял. непонял каким способом его загрузить на форму.
пробовал form1.Controls.Add(btn), но мне нужно его разместить на Panel, если его добавить в Panel controls, то это уже будет не то.
кароче говоря, у меня пока не выходит.
как его загрузить на форму
Здравствуйте, 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 контола, который инициировал постбэк был такой же, как и у контрола, который вы создаете в начале обработки запроса. Иначе обработчик просто не вызовется.
Здравствуйте, 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 контола, который инициировал постбэк был такой же, как и у контрола, который вы создаете в начале обработки запроса. Иначе обработчик просто не вызовется.