2009-09-11 4 views
1

단일 페이지 (home.aspx)가 포함 된 프로젝트 작업 중입니다.왜 자바 스크립트 코드가 사용자 정의 컨트롤에서 실행되지 않습니까?

Home.aspx에는 ScriptManager와 UpdatePanel —이 포함되어 있으며 관련 UserControls를로드하는 LinkButton이있는 div가 있습니다.

일부 사용자 컨트롤에는 javascript가 포함되어 있습니다. 내 문제는 자바 스크립트 (LinkButton 클릭 또는 UC로드 후) 시간에 실행되지 않습니다.

어떻게이 문제를 해결할 수 있습니까?

+1

관련 코드를 게시하십시오. – inkedmn

+0

답변이 도움이 되었습니까? –

답변

1

스크립트가 ScriptManager으로 등록되어 있는지 확인하십시오.

0

사용자 컨트롤에 JS 인라인이 있으면 실행되지 않습니다. 요소의 innerHTML을 설정하여 JavaScript가 추가되었습니다 (이는 UpdatePanel입니다). 실행되지 않습니다.

사용자 컨트롤은 ScriptManager와의 스크립트를 등록하면 릭 쇼트가 언급으로 - 그것은 실행 - ScriptManagerProxy 또는 ScriptManager.Register* 변종 중 하나를 사용하여 코드 숨김에서 추가하여 자신의 asp:ScriptReference의를 포함하여 중.

0

답장을 보내 주셔서 감사합니다.하지만이 솔루션을 살펴 보았습니다. 사용자 컨트롤 스크립트 관리자가 없어 스크립트 관리자가 Home.aspx에 배치되었습니다. Page.RegisterClientScriptBlock, Page.RegisterStartupScript, 모두 사용 ... 하지만 제대로 작동하지 않습니다. UC 자바 스크립트 코드는 아래 UC처럼 상단에 스크립트 태그에 있습니다

    function pageLoad() { 
    $addHandler($get("<%=Button2.ClientID%>"), 'click', cp); 

}
기능 CP() {

/* Do shomthing ... */ 

}

// * ######### JAVASCRIPT 코드의 끝

위 JS 코드 Button2는 UC에있는 ASP 버튼입니다. 오늘 새로운 점 찾기 : 위의 스크립트 태그에 defer = 'defer'를 추가하면 매력처럼 실행됩니다! 그러나이 솔루션은 IE 용 (유일한)이므로이 방법이 최선의 방법은 아닙니다. 무엇을 더 할 수 있습니까?

+0

ScriptManager.Register *는 정적입니다. 사용자 정의 컨트롤이 ScriptManager (UpdatePanel과 함께 필요함)가있는 페이지에 있으면 찾아 낼 것입니다. –

관련 문제