19.10.2 使用Page.ClientScript.RegisterStartupScript
- 摘要:《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:
- <asp:TextBox ID="TextBox1" Runat="server">Hello ASP.NET</asp:TextBox>
接着,使用RegisterClientScriptBlock方法把一个脚本放在页面上,以利用TextBox1控件中的值:
- Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
- Dim myScript As String = "alert(document.forms[0]['TextBox1'].value);"
- Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "myKey", _
- myScript,True)
- End Sub
运行这个页面,会生成如图19-17所示的JavaScript错误。
(点击查看大图)图 19-17 |
- Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
- Dim myScript As String = "alert(document.forms[0]['TextBox1'].value);"
- Page.ClientScript.RegisterStartupScript(Me.GetType(), "myKey", _
- myScript, True)
- End Sub
这个方法把JavaScript函数放在ASP.NET页面的底部,所以JavaScript函数执行时,会找到TextBox1元素,按照期望的那样执行,如图19-18所示。
(点击查看大图)图 19-18 |