一般在中向客戶端注冊腳本有三種方法
使用Literal控件在頁面的任意位置注冊腳本
使用ResponseWrite()在頁面的頂部注冊腳本
使用ClientScriptRegisterClientScriptBlock()或者ClientScriptRegisterStartupScript()分別在表單開始和結束的地方注冊腳本
下面給出一個使用了這三種方法的例子新建一個apsx文件ScriptDemoaspx
<%@ Page Language=C# AutoEventWireup=true CodeFile=ScriptDemoaspxcs Inherits=ScriptDemo %>
<!DOCTYPE html PUBLIC //WC//DTD XHTML Transitional//EN transitionaldtd>
<html xmlns= >
<head runat=server>
<title>無標題頁</title>
</head>
<body>
<form id=form runat=server>
<div>
<asp:Literal ID=LiteralScript runat=server></asp:Literal></div>
</form>
</body>
</html>
可以看到我們在頁面中僅僅放置了一個Literal控件下面是cs文件ScriptDemoaspxcs
using System;
using SystemData;
using SystemConfiguration;
using SystemCollections;
using SystemWeb;
using SystemWebSecurity;
using SystemWebUI;
using SystemWebUIWebControls;
using SystemWebUIWebControlsWebParts;
using SystemWebUIHtmlControls;
public partial class ScriptDemo : SystemWebUIPage
{
protected void Page_Load(object sender EventArgs e)
{
ResponseWrite(<script>alert(使用ResponseWrite());</script>);
PageClientScriptRegisterClientScriptBlock(PageGetType() <script>alert(使用PageClientScriptRegisterClientScriptBlock());</script>);
PageClientScriptRegisterStartupScript(PageGetType() <script>alert(使用PageClientScriptRegisterStartupScript());</script>);
LiteralScriptText += <script>alert(使用Literal控件);</script>;
}
}
在這裡面我們使用了三種向客戶端注冊腳本的方法在這個例子中腳本的調用順序應該是
ResponseWrite()>PageClientScriptRegisterClientScriptBlock()>使用Literal控件
>PageClientScriptRegisterStartupScript()
運行程序在浏覽器中查看源文件如下
<script>alert(使用ResponseWrite());</script>
<!DOCTYPE html PUBLIC //WC//DTD XHTML Transitional//EN transitionaldtd>
<html xmlns= >
<head><title>
無標題頁
</title><link type=text/css rel=stylesheet /></head>
<body>
<form name=form method=post action=ScriptDemoaspx id=form>
<div>
<input type=hidden name=__VIEWSTATE id=__VIEWSTATE value=/wEPDwUKMTYyNzcxNDYNgkFgICAwkFgICAQWAhEVGVdAUuPHNjcmlwdDhbGVydCgnL/SoTGlZXJhbOaOp+SticpOzwvcNyaXBPmRkbmbYaQhVexJuXdkOcOasDLc= />
</div>
<script>alert(使用PageClientScriptRegisterClientScriptBlock());</script>
<div>
<script>alert(使用Literal控件);</script></div>
<script>alert(使用PageClientScriptRegisterStartupScript());</script></form>
</body>
</html>
通過源文件我們可以驗證剛才的說法同時我們也看出ReponseWrite()方法輸出的代碼是在整個頁面最頂部的PageClientScriptRegisterClientScriptBlock()注冊的腳本則是出現在表單的最頂部PageClientScriptRegisterStartupScript()注冊的腳本出現在表單的最底部使用Literal控件輸出的腳本就在Literal控件所在位置處
From:http://tw.wingwit.com/Article/program/net/201311/13734.html