У меня есть 2 кнопки, добавленные на страницу динамически. Я хочу, чтобы при нажатии на первую кнопку на страницу добавлялся user control типа A, при нажатии на вторую — user control типа B. Однако, я столкнулся со следующим противоречием:
1. Я не могу добавлять user control в OnLoad страницы, т.к. в этот момент я еще не знаю, на какую кнопку нажал пользователь (обработка событий произойдет после OnLoad).
2. Также я не могу добавлять user control после обработки событий (например, в OnPreRender), т.к. в этом случае у дочерних контролов моего user control не будут срабатывать обработчики событий (потому что этих дочерних контролов на момент обработки событий еще нет — они будут добавлены только в OnPreRender).
Я нашел 2 способа решить эту проблему:
1. Я могу вручную разбирать коллекцию Request.Form (параметры постбэка из http-запроса), чтобы определить, кто инициировал событие (в данном случае — нажатую кнопку) и создать нужный user control.
2. Я могу добавлять user control в OnLoad в соответствии с предыдущим состоянием страницы, а потом, если сработает обработчик клика на кнопку, удалять неправильный user control и добавлять правильный.
Оба способа плохи по разным причинам. Есть ли какие-то другие способы корректно решить проблему? Возможно, я чего-то принципиально не понимаю?