通常我們可以使用頁面內聯的JavaScript代碼控制用戶端頁面的動作。但是在ASP.NET編程中伺服器端控制JavaScript的方法似乎很有限,主要有以下幾種:
1、直接寫死在頁面中的Script代碼,如:
<body onload="javascript:document.forms[0][‘TextBox1’].value=Date();">
<form id=”form1” runat=”server”>
<div>
<asp:TextBox ID="TextBox1" Runat="server" Width="300"></asp:TextBox>
</div>
</form>
</body>
</html>
2、使用Page.ClientScript.RegisterClientScriptBlock方法可以在頁面頭部寫入Script代碼。
❑ RegisterClientScriptBlock (type, key, script)
❑ RegisterClientScriptBlock (type, key, script, script tag specification)
<%@ Page Language=”C#” %>
<script runat=”server”>
protected void Page_Load(object sender, EventArgs e)
{
string myScript = @”function AlertHello() { alert(‘Hello ASP.NET’); }”;
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
“MyScript”, myScript, true);
}
</script>
3、使用Page.Response.Write()方法可以在頁面頭部寫入Script代碼。
<%@ Page Language=”C#” %>
<script runat=”server”>
protected void Page_Load(object sender, EventArgs e)
{
string myScript = @”function AlertHello() { alert(‘Hello ASP.NET’); }”;
Page.Response.Write(myScript);
}
</script>
4、使用Page.ClientScript.RegisterStartupScript 方法可以在頁面尾部寫入Script代碼
❑ RegisterStartupScript (type, key, script)
❑ RegisterStartupScript (type, key, script, script tag specification)
protected void Page_Load(object sender, EventArgs e)
{
string myScript = @”alert(document.forms[0][‘TextBox1’].value);”;
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
“MyScript”, myScript, true);
}
5、使用Page.ClientScript.RegisterClientScriptInclude方法可以允許程式員把Script代碼寫在一個單獨的檔案中,然後調用此方法可以在當前頁面中引入此JS檔案。
string myScript = “myJavaScriptCode.js”
Page.ClientScript.RegisterClientScriptInclude(“myKey”, myScript);
最終效果就是如下所示的樣子:
<script src=”myJavaScriptCode.js” type=”text/javascript”></script>