使用者控制項簡介
使用者控制項使程式員能夠很容易地跨ASP.NET WEB應用程式劃分和重複使用公用UI功能。與WEB表單頁一樣,使用者控制項可以在第一次請求時被編譯並儲存在伺服器記憶體中,從而縮短以後請求的回應時間。但與WEB表單頁不同的是,不能獨立地請求使用者控制項,使用者控制項必須包括在WEB表單頁內才能使用。
建立使用者控制項
可以通過使用文本或HTML編輯器以聲明方式建立使用者控制項。使用者控制項聲明文法與建立WEB表單頁所採用的文法十分類似;兩者的主要差別在於使用者控制項在內容周圍不包括<html>、<body>和<form>元素。在包含使用者控制項的WEB表單頁中包括這些元素。使用者控制項可以像文字檔一樣簡單,或者它們可以包含其他ASP.NET伺服器控制項。以下過程簡要介紹了一個可包括在應用程式多個頁上的簡單登入表單。
【注意】當使用者控制項包括在WEB表單頁中時,此使用者控制項中包含的任何ASP.NET伺服器控制項的所有屬性和方法都將提升為此使用者控制項的公用屬性和方法。
使用使用者控制項
將此使用者控制項包括在Web表單頁中時,需要在@Register指令的Src屬性中包括此檔案名稱以及該檔案的路徑。
在要包含使用者控制項的 WEB 表單頁中,聲明一個@Register指令,該指令包括:
tagprefix屬性,該屬性將首碼與使用者控制項相關聯。此首碼將包括在使用者控制項元素的開始標記中。
tagname屬性,該屬性將名稱與使用者控制項相關聯。此名稱將包括在使用者控制項元素的開始標記中。
Src屬性,該屬性定義要包括在WEB表單頁中的使用者控制項檔案的虛擬路徑。
Example:<%@ Register TagPrefix="Acme" TagName="WebUserControl" Src=".\WebUserControl.ascx" %>
Usage:<acme:WebUserControl id="LoginForm" runat="server"/>
使用者控制項使用小結
使用者控制項使開發人員能夠使用編寫WEB表單頁的相同編程技巧輕鬆地定義自訂控制項。 作為約定,用.ascx副檔名指示這樣的控制項。這樣可以確保使用者控制項檔案不能作為獨立的WEB表單頁執行。
使用者控制項通過Register指令包括在另一WEB表單頁中,該指令指定TagPrefix、TagName和Src location。
註冊了使用者控制項後,可以像普通的伺服器控制項那樣將使用者控制項標記放置在WEB表單頁中(包括runat="server"屬性)。在包含WEB表單頁中將使用者控制項的公用欄位、屬性和方法提升為該控制項的公用屬性(標記屬性)和方法。
使用者控制項參與每個請求的整個執行生存期,並且可以處理自己的事件,封裝來自包含WEB表單頁的一些頁邏輯。
使用者控制項不應包含任何表單控制項,而應依靠其包含WEB表單頁在必要時包括表單控制項。
可以使用System.WEB.UI.Page類的LoadControl方法以編程方式建立使用者控制項。使用者控制項的類型由ASP.NET運行庫決定,遵循約定檔案名稱_副檔名。
只有當為使用者控制項包括了Register指令時,使用者控制項的強型別才能由包含WEB表單頁使用(即使沒有實際聲明的使用者控制項標記)。