Manipulating Pages and Server Controls with JavaScript,使用JS处理页面和服务器控件

通常我们可以使用页面内联的JavaScript代码控制客户端页面的动作。但是在ASP.NET编程中服务器端控制JavaScript的方法似乎很有限,主要有以下几种:

1、直接写死在页面中的Script代码,如:

<body onload="javascript:document.forms[0][‘TextBox1’].value=Date();">

<form id=”form1” runat=”server”>

<div>

<asp:TextBox 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>