【正文】
in the execution of the page and produce their own markup rendering to the client. The principle advantage of server controls is that they enable developers to get plex rendering and behaviors from simple buildingblock ponents, dramatically reducing the amount of code it takes to produce a dynamic Web page. Another advantage of server controls is that it is easy to customize their rendering or behavior. Server controls expose properties that can be set either declaratively (on the tag) or programmatically (in code). Server controls (and the page itself) also expose events that developers can handle to perform specific actions during the page execution or in response to a clientside action that posts the page back to the server (a postback). Server controls also simplify the problem of retaining state across roundtrips to the server, automatically retaining their values across successive postbacks. Server controls are declared within an .htm file using custom tags or intrinsic HTML tags that contain a runat=server attribute value. Intrinsic HTML tags are handled by one of the controls in the namespace. Any tag that doesn39。尤其是,它提供了創(chuàng)建和使用可封裝常用功能的可重用用戶界面控件的能力,從而減少了頁開發(fā)人員編寫代碼的數(shù)量,它還為開發(fā)人員提供了清晰、有序地構造頁面的能力,以及可使開發(fā)工具真正做到所見即所得的功能。它們放在 IIS服務器上的虛擬目錄中。例如,下面的示例演示了一個簡單 HTML 頁,它收集用戶名和類別首選項,然后在單擊某一按鈕時執(zhí)行窗體回發(fā),發(fā)送 至發(fā)起請求的頁。 提供了與現(xiàn)有 ASP 頁的語法兼容性。這可以提高運行時執(zhí)行性能。正如上述示例所闡述的那樣,只使用 % % 代碼塊的開發(fā)人員必須自定義管理往返過程之間的頁狀態(tài)并自定義解釋發(fā)送的值。服務器控件的另一個優(yōu)點在于可以很容易地自定義其呈現(xiàn)或行為。 服務器控件在 .aspx 文件中是使用自定義標記或包含 runat=server 屬性值的內部 HTML 標記聲明的。在運行時,這些服務器控件將自動生成 HTML 內容。 除支持標準 HTML 輸入控件之外, 還使開發(fā)人員能夠在他們的頁上利用更豐富的自定義控件。 開發(fā)人員可以使用此對象模型清晰地修改頁以及與頁進行交互。最初,這些控件只呈現(xiàn)其 HTML 窗體等效項。 調用此類型的頁編程 “代碼內聯(lián) ”,如果您要在一個文件中維護您的代碼和表示邏輯,則該方法十分有用 。在團隊項目中,設計人員通常負責應用程序的用戶界面部分的工作,而開發(fā)人員則負責行為或代碼部分。通過在 Inherits 屬性中指定類名,頁代碼使用 % Page % 指令的 CodeFile 屬性來引用代碼隱藏文件。這極大地簡化了代碼隱藏頁的維護工作。 與頁可在運行時動態(tài)編譯一樣,任意代碼文件(例如, .cs 或 .vb 文件)也可以在運行時動態(tài)編譯。下面的示例演示如何使用 App_Code 目錄包含一個從頁調用的類文件。 configuration pilation codeSubDirectories add directoryName=Subdirectory/ /codeSubDirectories /pilation / /configuration 在 版本 中支持 Bin 目錄 , 該目錄類似于 Code 目錄 , 不同的是它可以包含預編譯的程序集。您可能需要使用頁最上方的 Import 指令從 Bin 目錄的程序集中導入特定的命名空間 。通過在應用程序的 文件中注冊,并且可以注冊更多的程序集。這些程序集存儲在全局程序集緩存中,該緩存是程序集的版本化存儲庫,可供計算機上的所有應用程序使用。主要在你的程序中將該 DLL作為引用添加到你的工程。但可以將 App_Code 目錄劃分為若干子目錄(每個子目錄包含同一語言的文件)以便可以在 App_Code 目錄下包含多種語言。與 不同( 需要將這些文件預編譯到 Bin 目錄), App_Code 目錄中的所有代碼文件都將在運行時動態(tài)編譯,然后提供給應用程序。將這些代碼復制到需要它們的每個頁上,這種做法既低效又使代碼難以維護。 與以前版本相比,這種簡化的代碼隱藏模型的好處在于無需維護代碼隱藏類中服務器控件變量的各個不同的聲明。 為代碼隱藏頁引入了一個改進的運行庫,該庫可簡化頁和代碼之間的連接。在使用代碼隱藏時,處理事件的代碼所在的文件與包含服務器控件和標記的頁在物理上分開。然后,該頁將重新呈現(xiàn)以反映更新后的文本。 提供了可以組織頁中代碼的兩種方法。 重要事項:所有內置服務器控件的詳細列表可在本快速入門的 “控件參考 ” 部分中找到。此控件狀態(tài)不存儲在服務器上(而是存儲在往返于請求之間的 input type=hidden 窗體字段中)。未顯式映射到這些控件之一的任何標記都將被指定為 類型。服務器控件(和頁本身)還公開了一些事件,開發(fā)人員可以處理這些事件以在頁執(zhí)行期間執(zhí)行特定的操作或響應將頁發(fā)回服務器的客戶端操作( “回發(fā) ”)。服務器控件參與頁的執(zhí)行,并生成它們自己的標記呈現(xiàn)給客戶端。例如,下面的示例演示如何使用 % % 代碼塊解釋從客戶端發(fā)回的請求。在呈現(xiàn)頁時,這些代碼塊以從上至下的方式執(zhí)行。這是因為 .aspx 文件只包含靜態(tài) HTML(不包含動態(tài)內容)。然后,可以使用此類動態(tài)處理傳入的請求。 頁是采用 .aspx 文件擴展名的文 本文件。t have access to the source code (VB or C file) but you have a piled DLL instead. Simply place the assembly in the Bin directory