Добавление PostBackTriggers и AsyncPostBackTriggers в UpdatePanel для динамически генерируемых дочерних элементов управления

У меня есть страница с ScriptManager, общий раскрывающийся список HTML ( ) и UpdatePanel. UpdatePanel содержит PlaceHolder (пока). Во время Page_Load в PlaceHolder добавляется ряд пользовательских элементов управления (на самом деле это несколько экземпляров одного и того же пользовательского элемента управления). Число, которое нужно добавить, неизвестно, пока страница не загрузится, поэтому их нужно загружать динамически. Выпадающий список заполняется таким же количеством пунктов меню, и на странице также есть javascript (с использованием jQuery), чтобы отображать только один из элементов управления за раз в зависимости от состояния раскрывающегося списка.

Каждый пользовательский элемент управления имеет две кнопки, которые должны генерировать асинхронную обратную передачу, раскрывающийся список, который должен генерировать асинхронную обратную передачу при изменении выбранного значения, и кнопку, которая должна генерировать синхронную обратную передачу. Если бы я не генерировал элементы управления динамически и если бы был только один элемент управления, структура была бы примерно такой:


    
        
        
        
        
        
        
    
    
        
        
        
        
    

Конечно, все элементы управления внутри ContentTemplate фактически будут частью каждого пользовательского элемента управления.

Добавление триггеров на стороне сервера, похоже, не работает, потому что ControlID не помогает UpdatePanel находить соответствующие элементы управления. Я могу использовать либо идентификатор элемента управления, либо его уникальный идентификатор, и он не работает, и я получаю сообщение об ошибке, подобное

A control with ID 'ctl00$ContentPlaceHolder1$ctl01$asyncButton1' could not be
found for the trigger in UpdatePanel 'myUpdatePanel'.

. Итак, мне интересно, нужно ли мне регистрировать триггеры в клиенте вместо использования ASP.NET Ajax . Я нашел эту страницу , которая в основном объясняет, как это сделать. Однако я не знаю, как принять во внимание EventName. В примерах, которые я видел до сих пор, просто добавлялись нажатия кнопок, но я не знаю, как обрабатывать событие SelectedIndexChanged из DropDownList.

Здесь есть помощь? Есть ли примеры, которые я пропустил? Это не Помогает, конечно, то, что метод в приведенной мной ссылке кажется "неофициальным", поэтому я не вижу никаких документов MSDN по этому вопросу.

Спасибо!

5
задан Tim Schmelter 24 January 2011 в 16:45
поделиться