2009-11-27 1 views
0

나는 아약스 아코디언이 있고 각 창에는 (동적으로 생성 된) updatepanel이 들어있다. 창 머리글을 클릭했지만 클릭 이벤트가 없을 때 updatepanels을 새로 고치기를 원합니다.아약스 아코디언의 click 이벤트를 얻으려면 어떻게해야합니까? asp.net

나는 scriptmanager를 사용하여 헤더에 버튼을 띄우고 비동기식으로 등록 할 수 있지만 버튼을 원하지 않는다. 전체 헤더가 트리거가되기를 바란다.

div 또는 레이블을 서버 쪽 클릭 이벤트가 없으므로 트리거로 설정하는 방법을 볼 수 없습니다. 내가 할 수있는 다른 방법이 있습니까?

답변

1

jQuery를 사용하십시오.

구문은 쉬운 것 같은 다음

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

때때로 ASP.NET과 나는 ASP.NET이 요소에 대해 정말 긴 반 임의의 클라이언트 측 ID 년대를 생성하기 때문에 와일드 카드 ID 일치를 사용해야했다 .

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

은 기본적으로 당신이 DOM에 아무것도를 선택하고 jQuery를 함께에 이벤트 핸들러를 첨부 할 수 있습니다 : 당신은 다음과 같은 일을 할 것입니다. 때로는 셀렉터로 창의력을 발휘해야합니다.

중요 : 업데이트 패널을 사용하고 있고 클릭을 모니터링하려는 표제가 해당 패널 내에있는 경우 패널을 통해로드 또는 다시로드 한 후 선택중인 요소로 해당 이벤트 핸들러를 다시 바인딩해야합니다 아약스. 다음 코드를 사용하여이 작업을 수행 할 수 있습니다.

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

}