2009-07-29 4 views
2

asp.net 사이트의 마스터 페이지에 자바 스크립트를 렌더링해야한다는 특정 요구 사항이 있습니다. 두 가지 구체적인 요구 사항이 있습니다 :특정 지점에서 asp.net 마스터 페이지의 자바 스크립트 렌더링

1) 위치 - BODY 태그 바로 전에 페이지의 맨 끝에 렌더링해야합니다. 2) 컨트롤 - 요청할 때만 렌더링합니다.

페이지에 배치 될 때만 자바 스크립트를 렌더링하는 웹 파트를 만들어서 # 2를 풀었습니다. 하지만 웹 파트가 body 태그 내부에서 javascript를 렌더링 할 위치를 제어하지 못하기 때문에 # 1을 달성 할 수 없었습니다.

누구든지 전에이 문제를 해결 했습니까?

상담하십시오. Sachit

답변

1

ClientScript.RegisterStartupScript를 사용해보십시오

덕분에, 그것은 바로 </body> 태그 위의 스크립트를 삽입합니다.

+0

그게 내가 렌더링 할 때만 제어 할 수 있지만 렌더링 할 위치는 제어 할 수 없다 .... 둘 다 나를위한 중요한 요구 사항이다. ( –

+0

@Sachit - "어디서" ... 나는 스크립트를 등록한 도우미 함수를 제안한 다음 프로그래밍 방식으로 그것을 렌더링해야하는 페이지에서 도우미 함수를 호출하는 것이 좋습니다. – JustLoren

+0

실제로 스크립트의 정확한 위치를 의미하는 곳에서이 스크립트가 필요합니다. 태그 바로 위입니다. ClientScript.RegisterStartupScript를 사용하여이 문제를 해결할 수 있다고 생각합니다.하지만 스크립트가 여러 페이지에 스크립트가 있기 때문에 문제가있는 경우 스크립트의 순서를 제어 할 수없는 것처럼 보입니다. 이 하나가 바닥에 있습니다. –

0

RenderControl은 사용자가 재정의 할 수있는 MasterPage Event Lifecycle에서 마지막으로 반환하는 방법입니다. 내 추측은 거기에 넣는 것입니다.

0

마스터 페이지를 사용하는 경우 최종 본문 태그 바로 앞에 콘텐츠 자리 표시자를 넣지 않는 이유는 무엇입니까? 콘텐츠 페이지는 특정 장소 소유자에게 자바 스크립트를 렌더링해야합니다.

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server">  


    <asp:ContentPlaceHolder ID="headerContent" runat="server"/> 
</head> 
<body> 
    <form id="mainForm" runat="server"> 
     <asp:ContentPlaceHolder ID="mainContent" runat="server" /> 
     <asp:ContentPlaceHolder ID="footerContent" runat="server" />  
    </form>  

    <asp:ContentPlaceHolder ID="footerJsContent" runat="server"/> 
</body> 
</html> 

콘텐츠 페이지는 footerJsContent 장소 홀더 내부에 자신의 자바 스크립트 렌더링합니다.

관련 문제