最後的問題是使得您的代碼便於重復使用這是通過用戶控件實現的此外ASPNETx中己經帶有一些功能但是在ASPNET 中得到了加強因此什麼是用戶控件?簡而言之用戶控件就是可以重復使用的Web Forms它們的名稱已經經歷了多次變化從scriptlets發展到pagelets一直到用戶控件它們可以被看作小型腳本(miniscripts)或小型頁面(minipages)或頁面中的頁面但是要考慮它們的關鍵在於它們可以根據您的需要被多次調用
如果浏覽Wrox United站點則可以看到幾個用戶控件的示例其中一個News控件在首頁上就可以看到實際上如果看看首頁它是一組不同來源的組件
News控件是一個用戶控件Login控件是一個ASP NET控件購物車是一個到用戶控件的鏈接而菜單是從site master中派生的它自身是一個ASPNET控件因此整個站點首頁和設計都是可以重復使用的如果單擊Shopping Cart鏈接您將會看到第二個用戶控件
在該站點的管理部分也有許多重復但您想到了一個思路!該思路就是這些控件可以在多個頁面中使用或者從不同的地方調用您不需要每次都要個別地剪切並粘貼代碼只要重復調用一部分代碼即可掛在您嘴邊的一個問題是它們如何與普通的ASPNET服務器控件相區別如前面看到的TextBox控件或Login控件?
答案是區別很小主要區別在於您必須自己提供該控件的後台代碼而ASPNET服務器控件徹底解決了這個問題可以向用戶控件中添加屬性並將它們當作屬性來設置如同使用普通的ASPNET服務器控件一樣
那麼為什麼不全部使用ASPNET服務器控件呢?是的ASPNET 承載了許多為最常見的情況和環境而設計的控件ASPNET 中增加了大量的服務器控件例如在ASPNET 中如果想要使用Login控件則必須將用戶名文本框口令文本框按鈕和消息標簽縫合在一個面板中因此將它創建為用戶控件而在版本中Login控件當作一個服務器控件出現但是它不可能預測到用戶所需要的一切因此創建自己的用戶控件的靈活性就顯得很有意義
如果在Internet Explorer中浏覽WroxUnitednet中主頁(Defaultaspx)的源代碼您將看不到任何使用用戶控件的跡象它全部是HTML元素和一些臨時的腳本事實就是這樣如果使用Flash插件或J}小程序您將會看到一些使用<object>標記(或者在舊版的浏覽器上可能是<embed>標記)的跡象因此下載時間也不會太長
如果看看發送到服務器的實際頁面則可以看到用戶控件被包含在兩個突出顯示的簡單代碼行中(可以從wwwwroxcom上下載使用這個源代碼頁面)
<%@ Page Language=VB Trace=false MasterPageFile=~/sitemaster AutoEventWireup=false codefile=Defaultaspxvb Inherits=_Default %>
<%@ Register TagPrefix=wu TagName=News Src=Newsascx %>
<asp:Content ID=Content ContentPlaceHolderID=mainContent Runat=server>
<h>Welcome to the Wrox United Web site</h>
<p>Were a great football team No really we are Dont take any notice
of our past performance Were just unlucky</p>
<wu:news id=News runat=server ItemsToShow=></wu:news>
</asp:Content>
該頁面開始提供一些用戶控件工作原理的提示
ASPNET 入門教程完整版
From:http://tw.wingwit.com/Article/program/net/201311/14502.html