欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET中后台注册js脚本使用的方法对比

程序员文章站 2024-03-01 19:50:40
用page.clientscript.registerclientscriptblock 和page.clientscript.registerstartupscript:...
用page.clientscript.registerclientscriptblock 和page.clientscript.registerstartupscript:区别:
1.使用page.clientscript.registerclientscriptblock
c#代码
复制代码 代码如下:

<%@ 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>

运行结果如下:
复制代码 代码如下:

<html xmlns=”http://www.w3.org/1999/xhtml” >
<head><title>
adding javascript
</title></head>
<body>
<form method=”post” action=”javascriptpage.aspx” id=”form1”>
<div>
<input type=”hidden” name=”__viewstate”
value=”/wepdwukmty3nze5mjiymgrkiyysrmg+bcxi9diawylbxnditdo=” />
</div>
<script type=”text/javascript”>
<!--
function alerthello() { alert(‘hello asp.net'); }// -->
</script>
<div>
<input type=”submit” name=”button1” value=”button” onclick=”alerthello();”
id=”button1” />
</div>
</form>
</body>
</html>

2.使用page.clientscript.registerstartupscript
registerstartupscript 方法与registerclientscriptblock方法最大的不同是:registerstartupscript 把script放置在 asp.net page的底部,而registerclientscriptblock把script放置在asp.net page的顶部。
如果你的页面中有如下代码:
复制代码 代码如下:

<asp:textbox id=”textbox1” runat=”server”>hello asp.net</asp:textbox>

c#
复制代码 代码如下:

protected void page_load(object sender, eventargs e)
{
  string myscript = @”alert(document.forms[0][‘textbox1'].value);”;
  page.clientscript.registerclientscriptblock(this.gettype(), “myscript”, myscript, true);
}

此页面运行时会报错,原因是javascript function先于text box被安放于浏览器。因此javascript function找不到textbox1。
c#
复制代码 代码如下:

protected void page_load(object sender, eventargs e)
{
  string myscript = @”alert(document.forms[0][‘textbox1'].value);”;
  page.clientscript.registerstartupscript(this.gettype(), “myscript”, myscript, true);
}

这段代码把javascript function放置于asp.net page底部,因此javascript运行时它能找到textbox1。
3.使用page.clientscript.registerclientscriptinclude
许多开发者把javascript放置在.js文件中,使用registerclientscriptinclude方法可以注册.js文件中的javascript。
c#
复制代码 代码如下:

string myscript = “myjavascriptcode.js”
page.clientscript.registerclientscriptinclude(“mykey”, myscript);

这将在asp.net页面产生如下结构:
复制代码 代码如下:

  <script src=”myjavascriptcode.js” type=”text/javascript”></script>