Ajax 아코디언의 클릭 이벤트를 어떻게 얻을 수 있습니까? asp.net

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

  •  05-07-2019
  •  | 
  •  

문제

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
    });

}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top