在ASP.NET頁面上輕鬆整合JavaScript

來源:互聯網
上載者:User
作者: Builder, Tony Patton

儘管ASP.NET提供了一個強壯的平台,但是開發人員也不應忽視諸如JavaScript這樣成熟的技術。在這篇文章中,Tony
Patton將向您解釋在Web開發中如何將JavaScript與ASP.NET控制項進行整合。

儘管Web開發平台提供了靈活性和眾多功能,您經常希望或需要依賴現有的技術來完成一項必須的任務,一個好的例子就是ASP.NET,它提供了一個強大的開發平台,但是同時也不應忽略像JavaScript這樣成熟的技術,在這篇文章中,我將向您講解如何將JavaScript代碼連接到ASP.NET控制項中。

常規方式

通常情況下,當一個Web應用軟體需要一個快顯視窗或確認視窗或其它的用戶端功能時,您可以建立必需的JavaScript方法,並在需要時調用它們。例如,在列表A中包含了一個確認視窗,使用者可以用它來繼續或取消表單的提交。

在選擇了提交(submit)按鈕之後,JavaScript的confirmSubmit方法就被調用了,這一確認提示允許使用者繼續進行表單提交(選擇確認)或取消(選擇取消)。

以上代碼可以按照計劃工作,但是在一個開發平台上工作的時候就沒有這麼簡單了,比如ASP.NET。

ASP.NET的替換選項

ASP.NET支援使用諸如輸入按鈕和文字框等HTML元素,但是在ASP.NET自己的開發模型上有一套完成的控制項元素可以提供額外的功能。

將JavaScript附加到ASP.NET上並不像直接的HTML/JavaScript方式那麼簡單,ASP.NET編程模式在基本頁面類中提供了方法來附加指令碼程式塊到頁面元素當中。以下的方法可以用於附加或整合JavaScript到頁面或頁面元素中:

l
RegisterClientScriptBlock:允許您的頁面含有指令碼程式塊,用戶端指令碼在頁面對象<form
runat=
server>元素的起始標籤之後開始運行,指令碼程式塊是作為對象來提交輸出的,所以您必需加上兩個<script>元素標籤。

l
RegisterOnSubmitStatement:允許您指派一個指令碼程式塊/方法到頁面對象OnSubmit事件上。

l
RegisterStartupScript:允許您在頁面中包含指令碼程式塊,與RegisterClientScriptBlock方法類似,這一方法在頁面對象<form
runat=
server>元素的結束標籤之前開始運行,指令碼程式塊是作為對象來提交輸出的,所以您必需加上兩個<script>元素標籤。

每個方法都可以接受兩個參數:鍵和指令碼,鍵是分配給指令碼程式塊的名稱,索引值應當是唯一的,通過這一唯一的索引值,多個伺服器控制的執行個體可以請求指令碼程式塊,而不必讓指令碼再次運行輸出資料流;第二個參數指令碼包含了發送到客戶的實際指令碼,它可以是完整的JavaScript代碼或一個方法的名稱。

這些方法可以使用在實際的ASP.NET頁面代碼中,無論是VB.NET、C#、J#或任何其它的語言,列表B展示了用C#編寫的ASP.NET範例程式碼。

JavaScript方法是通過一個字串變數來構建的,它的值傳遞給RegisterClientScriptBlock方法作為第二個參數,實際的方法名稱是通過該對象的Attributes
屬性的Add方法來分配給ASP.NET的按鈕控制項的,JavaScript事件是作為第一個參數傳遞的,而方法名稱則是第二個參數。

而且,你可能會注意到IsStartupScriptRegistered方法的使用,該方法允許您在繼續使用前確認該指令碼是否已經被註冊了,有兩個方法可以用於這個問題:

l
IsStartupScriptRegistered:確認用戶端的起始指令碼是否已經在頁面對象上註冊,其單一參數是指令碼的名稱。

l
IsClientScriptBlockRegistered:確認用戶端的指令碼程式塊是否已經在頁面對象上註冊,其唯一的參數是指令碼的名稱。

另一個解決問題的方法就是使用頁面類的RegisterOnSubmitStatement方法,列表C重複了列表B的功能,但是不同之處在於將confirmSubmit方法串連到頁面的提交事件上而不是按鈕的點擊事件上。

這個簡單的例子清晰地說明了如何將JavaScript指令碼程式塊和JavaScript指令碼包含到ASP.NET頁面的控制項上,如果您使用ASP.NET控制項,這種方法可以協助您將指令碼聯絡到這些控制項上,但是也可以使用註冊(register)方法來集中一個項目的JavaScript。您可以建立一個包含了指令碼的類檔案並在需要時在頁面中使用它們,這樣就只需在一個位置對這些指令碼進行管理,在一個應用軟體中的一個或多個頁面上使用這些指令碼就會變得更容易。

集新舊於一身
無論在哪種開發平台,您都不太可能放棄使用JavaScript作為用戶端指令碼語言,JavaScript都是開發用戶端功能的標準,儘管ASP.NET控制項提供了大量的功能,很多時候您還需要將JavaScript與這些控制項進行"聯姻",幸好ASP.NET頁面類包含了眾多的方法來將指令碼程式塊和方法整合到頁面及其控制項上。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.