使用Page.ClientScript.RegisterStartupScript

來源:互聯網
上載者:User
文章目錄
  • 19.10.2 使用Page.ClientScript.RegisterStartupScript
19.10.2 使用Page.ClientScript.RegisterStartupScripthttp://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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.