Page.RegisterClientScriptBlock(String, String) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
주의
The recommended alternative is ClientScript.RegisterClientScriptBlock(Type type, string key, string script). http://go.microsoft.com/fwlink/?linkid=14202
클라이언트 쪽 스크립트 블록을 응답으로 내보냅니다.
public:
virtual void RegisterClientScriptBlock(System::String ^ key, System::String ^ script);
public virtual void RegisterClientScriptBlock (string key, string script);
[System.Obsolete("The recommended alternative is ClientScript.RegisterClientScriptBlock(Type type, string key, string script). http://go.microsoft.com/fwlink/?linkid=14202")]
public virtual void RegisterClientScriptBlock (string key, string script);
abstract member RegisterClientScriptBlock : string * string -> unit
override this.RegisterClientScriptBlock : string * string -> unit
[<System.Obsolete("The recommended alternative is ClientScript.RegisterClientScriptBlock(Type type, string key, string script). http://go.microsoft.com/fwlink/?linkid=14202")>]
abstract member RegisterClientScriptBlock : string * string -> unit
override this.RegisterClientScriptBlock : string * string -> unit
Public Overridable Sub RegisterClientScriptBlock (key As String, script As String)
매개 변수
- key
- String
스크립트 블록을 식별하는 고유 키입니다.
- script
- String
클라이언트에 보낸 스크립트의 내용입니다.
- 특성
예제
다음 코드 예제에서는 메서드와 함께 메서드를 RegisterClientScriptBlock 사용하는 방법을 IsClientScriptBlockRegistered 보여 줍니다. 코드 선언 블록의 ECMAScript가 결정된 대로 IsClientScriptBlockRegisteredRegisterClientScriptBlock 아직 등록되지 않은 경우 호출이 이루어집니다.
<%@ Page Language="C#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public void Page_Load(Object sender, EventArgs e)
{
String csname1 = "PopupScript";
String csname2 = "ButtonClickScript";
if (!IsClientScriptBlockRegistered(csname1))
{
String cstext1 = "<script type=\"text/javascript\">" +
"alert('Hello World');</" + "script>";
RegisterStartupScript(csname1, cstext1);
}
if (!IsClientScriptBlockRegistered(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>");
RegisterClientScriptBlock(csname2, cstext2.ToString());
}
}
</script>
<html >
<head>
<title>RegisterClientScriptBlock Example</title>
</head>
<body>
<form id="Form1"
runat="server">
<input type="text" id="Message" /> <input type="button" value="ClickMe" onclick="DoClick()" />
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim csname1 As String = "PopupScript"
Dim csname2 As String = "ButtonClickScript"
If Not IsClientScriptBlockRegistered(csname1) Then
Dim cstext1 As String = "<script type=""text/javascript"">" & _
"alert('Hello World');</" & "script>"
RegisterStartupScript(csname1, cstext1)
End If
If Not IsClientScriptBlockRegistered(csname2) Then
Dim cstext2 As New StringBuilder()
cstext2.Append("<script type=""text/javascript""> function DoClick() {")
cstext2.Append("Form1.Message.value='Text from client script.'} </")
cstext2.Append("script>")
RegisterClientScriptBlock(csname2, cstext2.ToString())
End If
End Sub
</script>
<html >
<head>
<title>RegisterClientScriptBlock Example</title>
</head>
<body>
<form id="Form1"
runat="server">
<input type="text" id="Message" /> <input type="button" value="ClickMe" onclick="DoClick()" />
</form>
</body>
</html>
설명
클라이언트 쪽 스크립트는 개체 <form runat= server>
요소의 Page 여는 태그 바로 옆에 내보내집니다. 매개 변수에 지정된 script
스크립트 블록 문자열 주위에 여는 요소와 닫는 <script>
요소를 포함해야 합니다.
이 메서드는 키를 사용하여 스크립트 블록을 식별하기 때문에 다른 서버 컨트롤 인스턴스에서 요청할 때마다 스크립트 블록을 출력 스트림으로 내보냅니다. 키를 사용하면 서로 다른 컨트롤의 스크립트 블록이 서로 방해될 가능성도 줄어듭니다.
매개 변수 값이 동일한 key
스크립트 블록은 중복된 것으로 간주됩니다.
참고
요청 브라우저가 스크립트를 지원하지 않는 경우 렌더링되지 않도록 스크립트 주위에 HTML 주석 태그를 포함해야 합니다.
RegisterClientScriptBlock 메서드는 사용되지 않습니다. 대신 RegisterClientScriptBlock 클래스의 ClientScriptManager 메서드를 사용합니다.