ClientScriptManager
비하인드 코드에서 자바스크립트 사용하기
ClientScriptManager 클래스는 클라이언트측 스크립트를 관리하고 웹 응용 프로그램에 추가하는 데 사용됩니다. Page 개체의 ClientScript 속성에서 ClientScriptManager 클래스에 대한 참조를 가져올 수 있습니다.
페이지의 HTML 태그에 스크립트를 포함시켜 웹 페이지에 클라이언트측 스크립트를 선언적으로 추가할 수 있습니다. 그러나 클라이언트측 스크립트를 동적으로 추가해야 하는 경우도 있습니다. 스크립트를 동적으로 추가하려면 스크립트를 추가할 시기와 방법에 따라 RegisterClientScriptBlock 메서드, RegisterClientScriptInclude 메서드, RegisterStartupScript 메서드 또는 RegisterOnSubmitStatement 메서드를 사용합니다. 자세한 내용은 방법: ASP.NET 웹 페이지에 동적으로 클라이언트 스크립트 추가를 참조하십시오.
ClientScriptManager 클래스에서는 String 키와 Type으로 스크립트를 고유하게 식별합니다. 키 및 형식이 같은 스크립트는 중복된 것으로 간주됩니다. 페이지에서 사용할 수 있는 여러 사용자 정의 컨트롤의 유사한 스크립트를 서로 혼동하지 않도록 하는 데 도움이 됩니다.
ClientScriptManager 클래스는 다시 게시를 수행하지 않고 클라이언트에서 서버 코드를 실행하는 편이 나은 경우에 클라이언트 콜백을 호출하는 데 사용됩니다. 클라이언트 콜백 호출은 서버에 대한 out-of-band 콜백을 수행하는 것을 의미합니다. 클라이언트 콜백에서 클라이언트 스크립트 함수는 ASP.NET 웹 페이지로 비동기 요청을 보냅니다. 웹 페이지에서는 해당 페이지의 정상 수명 주기의 수정된 버전을 실행하여 콜백을 처리합니다. 호출될 경우 클라이언트에서 서버측 이벤트를 다시 호출하도록 하는 클라이언트측 함수에 대한 참조를 가져오려면 GetCallbackEventReference 메서드를 사용합니다. 자세한 내용은 ASP.NET 웹 페이지에서 다시 게시하지 않는 클라이언트 콜백 구현을 참조하십시오.
다음 코드 예제에서는 ClientScriptManager 클래스의 RegisterClientScriptBlock 메서드를 사용하는 방법을 보여 줍니다. 페이지에는 두 개의 클라이언트측 스크립트가 정의되는데, 하나는 페이지가 로드될 때 클라이언트측 경고 메시지를 표시하는 PopupScript이고 다른 하나는 HTML 단추의 onClick 이벤트에 대한 클라이언트측 처리기를 정의하는 ButtonClickScript입니다.
<%@ Page Language="C#"%>
<script runat="server">
public void Page_Load(Object sender, EventArgs e)
{
// Define the name and type of the client scripts on the page.
String csname1 = "PopupScript";
String csname2 = "ButtonClickScript";
Type cstype = this.GetType();
// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;
// Check to see if the startup script is already registered.
if (!cs.IsStartupScriptRegistered(cstype, csname1)) //스크립트가 등록되어져 있는지 체크
{
String cstext1 = "alert('Hello World');";
cs.RegisterStartupScript(cstype, csname1, cstext1, true); //onLoad 일때 실행됩니다.
}
// Check to see if the client script is already registered.
if (!cs.IsClientScriptBlockRegistered(cstype, csname2))
{
StringBuilder cstext2 = new StringBuilder();
cstext2.Append("<script type=text/javascript> function DoClick() {");
cstext2.Append("Form1.Message.value='Text from client script.'} </");
cstext2.Append("script>");
cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false);
//false 이면 스크립트 블로 주위로 <script></script>안붙는다는 얘기~
}
}
</script>
<html>
<head>
<title>ClientScriptManager Example</title>
</head>
<body>
<form id="Form1"
runat="server">
<input type="text" id="Message"> <input type="button" value="ClickMe" onclick="DoClick()">
</form>
</body>
</html>
'ASP.NET AJAX' 카테고리의 다른 글
자바스크립트로 닷넷 프레임워크 설치여부 확인 (0) | 2010.01.12 |
---|---|
[listView] 리스트 아이템 저장하기 (0) | 2010.01.11 |
데이터바인딩 방법 (0) | 2010.01.11 |
텍스트 박스에서 엔터(이미지버튼) 실행하기 (0) | 2010.01.11 |
[MSDN]globalization 요소(ASP.NET 설정 스키마) (0) | 2010.01.11 |
[ DataList ,데이타 리스트,datatable,데이터테이블 ] 임의의 값(?) 바인딩 (0) | 2009.12.15 |
[RadioButtonList] 자바스크립트로 선택체크하기 (0) | 2009.12.15 |
BLOB 저장된 이미지 웹상에 출력하기 (0) | 2009.12.15 |
간단한 Web.config connectionStrings 암호화 방법 (0) | 2009.12.15 |
최대 요청 길이를 초과했습니다.오류 해결방법 (0) | 2009.12.15 |