Ajax 아코디언의 클릭 이벤트를 어떻게 얻을 수 있습니까? asp.net
문제
Ajax 아코디언이 있으며 각 창에는 업데이트 패널 (동적으로 생성)이 포함되어 있습니다. 창의 헤더를 클릭 할 때 업데이트 패널이 새로 고침되기를 원하지만 클릭 이벤트는 없습니다.
헤더에 버튼을 팝업하여 ScriptManager를 사용하여 Asynch 트리거로 등록 할 수 있지만 버튼을 원하지 않으므로 전체 헤더가 트리거가되기를 원합니다.
서버 사이드 클릭 이벤트가 없으므로 DIV 또는 레이블을 트리거로 설정하는 방법을 볼 수 없습니다. 내가 할 수있는 다른 방법이 있습니까?
해결책
jQuery를 사용하십시오.
구문은 다음과 같이 쉽습니다.
$('#myHeading').click(function(){
// Your code here
});
Asp.net을 사용하면 ASP.NET이 요소에 대해 정말 긴 반 랜덤 ClientSide ID를 생성하기 때문에 와일드 카드 ID 일치를 사용해야했습니다. 다음과 같은 일을 할 것입니다.
$('[id*="myHeading"]').click(function(){
// Your code here
});
기본적으로 DOM에서 무엇이든 선택하고 jQuery로 이벤트 핸들러를 첨부 할 수 있습니다. 때로는 선택기와 창의적이어야합니다.
중요 : UpdatePanels를 사용하는 경우 클릭을 모니터링하려는 제목이 해당 패널 내부에있는 경우 패널을 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
});
}
제휴하지 않습니다 StackOverflow