Причина, по которой ваши события не происходят, заключается в том, что вы неправильно понимаете жизненный цикл страницы ASP.Net. Когда вы запрашиваете страницу, ASP.Net создает новый экземпляр соответствующего класса страницы. Этот экземпляр ничего не знает ни о каких других экземплярах, которые были созданы в прошлом. Он использует экземпляр класса Page для генерации набора HTML, который он отправляет обратно в браузер в качестве ответа. Затем этот экземпляр класса Page на сервере уничтожается вместе с его состоянием.
Когда страница отправляется обратно, ASP.Net считывает данные с использованием viewstate, идентификаторов и т. Д. И сопоставляет отправленные обратно элементы HTML с серверными элементами управления в только что созданном экземпляре страницы. Элементы, добавленные в коллекцию Controls предыдущего экземпляра, не существуют в этом новом экземпляре, поэтому ASP.Net не может их распознать или инициировать события на них.
Вот статья, которая демонстрирует то, чего, я думаю, вы пытаетесь достичь, хотя и с GridViews, она использует аналогичный подход к решению, которое я ранее опубликовал.
http://www.codeproject.com/KB/aspnet/MultiNestMDGridview.aspx
Возможно, вы могли бы точно объяснить, какова конечная цель, потому что может быть лучшее решение? Я полностью согласен с тем, что ограничение как подхода, который я опубликовал ранее, так и решения в этой ссылке заключается в том, что существует ограниченное количество доступных уровней детализации, что может или не может быть проблемой в зависимости от того, что вы на самом деле пытаетесь сделать .
Edit -
Если вы измените событие Page_Init, как предлагает @Microgen, удалите if (! Page.IsPostBack), установите AutoPostBack = true и используйте энергонезависимый идентификатор для динамически добавляемого элемента управления, это вызовет событие на стороне сервера. и визуализировать 2-й список. Он не будет работать с Guid.New (), потому что коллекция Controls на вновь созданной странице не будет содержать ничего с соответствующим ID, поэтому обработчик событий не будет подключен. Это ответило бы на вопрос, как первоначально отправлено. Однако ваш 2-й список не будет запускать события, если вы не создадите его и не добавите его в Page.Controls в Page_Init таким же образом и т. Д. Для 3-го и т. Д., Все по причине, описанной выше.