使用Page.ClientScript.RegisterStartupScript

19.10.2 使用Page.ClientScript.RegisterStartupScript

http://book.51cto.com  2009-07-01 09:08  张敏/丁峰译  清华大学出版社   我要评论(0)
  • 摘要:《Visual Basic 2008高级编程(第5版)》第19章使用ASP.NET 3.5,本章介绍许多基础知识,讨论与整个ASP.NET应用程序相关的问题以及建立、部署这些新应用程序的选项。本节为大家介绍使用Page.ClientScript.RegisterStartupScript。

 

19.10.2  使用Page.ClientScript.RegisterStartupScript

RegisterStartupScript方法类似于RegisterClientScriptBlock方法,主要区别是RegisterStartup Script方法把脚本放在ASP.NET页面的底部,而不是顶部。实际上,RegisterStartupScript方法与RegisterClientScriptBlock方法采用相同的结构:

RegisterStartupScript(type, key, script)

RegisterStartupScript(type, key, script, script tag specification)

是什么使脚本在页面的不同地方注册?其实区别很多。如果JavaScript代码处理的是页面上的一个控件,则大多数情况下应使用RegisterStartupScript方法,而不是RegisterClientScript Block方法。例如,使用下面的代码创建一个页面,其中包含一个简单的<asp:TextBox>控件,其默认值是Hello ASP.NET:

  
  
  1. <asp:TextBox ID="TextBox1" Runat="server">Hello ASP.NET</asp:TextBox> 

接着,使用RegisterClientScriptBlock方法把一个脚本放在页面上,以利用TextBox1控件中的值:

  
  
  1. Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgs)  
  2.    Dim myScript As String = "alert(document.forms[0]['TextBox1'].value);" 
  3.    Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "myKey", _  
  4.       myScript,True)  
  5. End Sub 

运行这个页面,会生成如图19-17所示的JavaScript错误。

 
(点击查看大图)图  19-17
发生错误是因为JavaScript函数在文本框控件放在屏幕上之前就引发了。因此,JavaScript函数找不到TextBox1,页面就会抛出一个错误。现在试试RegisterStartupScript方法:
  
  
  1. Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgs)  
  2.    Dim myScript As String = "alert(document.forms[0]['TextBox1'].value);" 
  3.    Page.ClientScript.RegisterStartupScript(Me.GetType(), "myKey", _  
  4.      myScript, True)  
  5. End Sub 

这个方法把JavaScript函数放在ASP.NET页面的底部,所以JavaScript函数执行时,会找到TextBox1元素,按照期望的那样执行,如图19-18所示。

  
(点击查看大图)图  19-18


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值