Как я могу получить событие щелчка аккордеона Ajax? asp.net
Вопрос
У меня есть аккордеон 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
});
}