Как я могу получить событие щелчка аккордеона Ajax? asp.net

StackOverflow https://stackoverflow.com/questions/1809587

  •  05-07-2019
  •  | 
  •  

Вопрос

У меня есть аккордеон ajax, и каждая панель содержит панель обновлений (создается динамически). Я хочу, чтобы панели обновления обновлялись при щелчке по заголовку панели, но событие щелчка отсутствует.

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

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

Это было полезно?

Решение

Используйте jQuery.

Синтаксис будет таким простым:

$('#myHeading').click(function(){
    // Your code here
});

Иногда в ASP.NET мне приходилось использовать сопоставление по подстановочному идентификатору, потому что ASP.NET создает очень длинные полуслучайные идентификаторы на стороне клиента для ваших элементов. Вы бы сделали что-то вроде следующего:

$('[id*="myHeading"]').click(function(){
    // Your code here
});

По сути, вы можете выбрать что угодно в DOM и присоединить к нему обработчик событий с помощью jQuery. Иногда вам нужно проявить творческий подход с помощью селекторов.

ВАЖНО! Если вы используете панели обновления, а заголовок, за которым вы хотите следить за кликами, находится внутри этой панели, вам нужно будет перепривязать эти обработчики событий к элементу, который вы выбираете после того, как панель загружена / перезагружена через ajax , Это может быть достигнуто с помощью следующего кода:

var prm = Sys.WebForms.PageRequestManager.getInstance();

prm.add_pageLoaded(panelLoaded);

function panelLoaded(sender, args){

    $('[id*="myHeading"]').click(function(){
        // Do something after there is a click
    });

}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top