Вы должны восстанавливать свои динамически созданные элементы управления при каждой обратной передаче (наконец, в Page_Load, лучше в Page_Init).Вы должны установить идентификатор элементов управления соответственно, потому что ASP.Net нуждается в нем, чтобы определить, какой элемент управления вызвал обратную передачу, и обработать соответствующие события.
Вы можете сохранить количество созданных кнопок в ViewState и использовать его длявосстановить их на Page_Load.Увеличьте число при добавлении новой кнопки.Используйте этот номер также, чтобы сделать идентификатор кнопки уникальным (добавьте его к идентификатору), чтобы гарантировать, что он одинаков на каждой обратной передаче.
Для получения дополнительной информации, посмотрите Page-Lifecycle и ViewState с динамически добавленными элементами управления .
Редактировать: Как прокомментировал Джоэл, если вам нужна только одна кнопка, вы можете установить ее идентификатор статически, но вам нужно регенерировать ее при обратной передаче, например, для обработки ееклик-событие.