ASP.NET服務器控件發送腳本(1)
發表于:2007-06-30來源:作者:點擊數:
標簽:
摘要:盡管從技術角度講,ASP.net 服務器 控件的所有功能都可以在服務器端執行,但通常情況下通過添加客戶端腳本可以大大增強服務器控件的可用性。本文將探討服務器控件發送客戶端腳本的兩種方法,還將構建兩個使用這些技術的服務器控件:PopupGreeting,一
摘要:盡管從技術角度講,ASP.net
服務器控件的所有功能都可以在服務器端執行,但通常情況下通過添加客戶端腳本可以大大增強服務器控件的可用性。本文將探討服務器控件發送客戶端腳本的兩種方法,還將構建兩個使用這些技術的服務器控件:PopupGreeting,一個在首次加載的 Web 頁面上顯示帶有特定消息的客戶端模式對話框的服務器控件;ConfirmButton,一個增強的 Button Web 控件,如果用戶點擊此按鈕,則在發回 Web 窗體前向用戶顯示一個
JavaScript confirm() 的對話框。
簡介
盡管從技術角度講,Microsoft? ASP.NET 服務器控件的所有功能都可以在服務器端執行,但通常情況下通過添加客戶端腳本可以大大增強服務器控件的可用性。例如,ASP.NET 驗證 Web 控件可以在服務器端執行所有的驗證檢查。但是,對于高版本瀏覽器,驗證 Web 控件也會發送客戶端腳本,以在客戶端進行驗證。這就是說,這些瀏覽器的用戶可以獲得響應效果更好的動態體驗。
在
開發 ASP.NET 服務器控件時,您不妨問問自己,如何才能通過使用客戶端腳本來增強可用性。一旦找到可行的方案,其他要做的就是增強服務器控件的功能,以使其發送合適的客戶端腳本。
ASP.NET 服務器控件可以發送兩種客戶端腳本:
客戶端腳本塊
客戶端 HTML 屬性
客戶端腳本塊通常是用 JavaScript 編寫的,其中通常包含在發生特定的客戶端事件時執行的函數??蛻舳?HTML 屬性提供將客戶端事件與客戶端腳本聯系在一起的方法。例如,以下的 HTML 頁面中包含了客戶端腳本塊,腳本塊中包含了名為 doClick() 的函數。該頁面同時還包含一個按鈕(通過 <input> HTML 元素創建),這個按鈕的 onclick 屬性與 doClick() 函數綁定。也就是說,只要用戶單擊該按鈕,就開始執行 doClick() 函數中的客戶端代碼。在本示例中,將顯示一個彈出式對話框(圖 1)。
<html>
<body>
<form>
<script language="JavaScript">
<!--
function doClick() {
alert("You clicked me!");
}
// -->
</script>
<input type="button" onclick="doClick()" value="Click Me!" />
</form>
</body>
</html>
圖1是單擊“Click Me!”按鈕時 HTML 頁面的屏幕快照。
圖 1:單擊“Click Me!”按鈕時顯示的彈出式對話框
對于以上 HTML 頁面中的客戶端腳本,有幾點值得注意。首先,客戶端腳本塊包含在 HTML 注釋(<!-- 和 -->)中。之所以這樣,是因為如果不將腳本塊放入 HTML 注釋中,那些不能識別腳本的舊式瀏覽器就會顯示 <script> 塊的內容。此外,還要注意,腳本塊中 HTML 注釋的結束標記前有一個 JavaScript 注釋,即 //。這是因為舊版本的 Netscape 在遇到 --> 時,會拋出 JavaScript 分析異常,因此必須將其注釋掉。幸運的是,現代的瀏覽器已不需要這一額外操作,所以在為 Intranet 或其他由瀏覽器控制的環境開發 Web 頁面時,您就不必采取此類預防措施了。
如果您對客戶端腳本不是很熟悉,alert(string) 函數的作用就是顯示一個模式彈出式對話框,對話框中包含的消息由 string 參數指定。所有 HTML 元素都有若干個可以綁定一段客戶端 JavaScript 代碼的客戶端屬性(例如,onclick、onmouseover、onmouseout、onfocus 和 onblur 等等)。例如,在上面的 HTML 頁面中,<input> 元素的 onclick 屬性綁定到 doClick() 函數,因此在單擊該按鈕時將執行 doClick() 函數。有關 JavaScript 事件及其關聯的 HTML 屬性的列表,請參閱 Introduction to Dynamic HTML 一文。有關客戶端 JavaScript 的詳細信息,請參閱 HTML and Dynamic HTML 一文。
在本文中,我們將學習如何在 ASP.NET 服務器控件中發送客戶端腳本塊和 HTML 元素屬性。我們首先討論如何使用 System.Web.UI.Page 類中的兩個方法來向 ASP.NET Web 頁面添加客戶端腳本塊,這兩個方法是 ReGISterStartupScript() 和 RegisterClientScriptBlock()。掌握這一
知識后,我們將構建一個簡單的服務器控件,讓這個控件在每次加載頁面時顯示一個客戶端彈出式對話框。之后,我們再來了解如何將 HTML 屬性添加到 ASP.NET 服務器控件的 HTML 元素。最后,我們將歸納所有知識,實際構建一個 ConfirmButton Web 控件,當單擊這個控件時,將向用戶提示一個對話框,詢問用戶是否要繼續。
原文轉自:http://www.kjueaiud.com