版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第2章ASP.NETWeb窗體頁徹底透析ASP.NETWeb窗體頁文件的擴(kuò)展名為“.aspx”。創(chuàng)建一個Web窗體頁方法很簡單:用戶只需將現(xiàn)有的HTML文件的文件擴(kuò)展名修改為“.aspx”即可,不需要修改該文件的任何代碼。這一小節(jié)將詳細(xì)介紹Web窗體頁相關(guān)內(nèi)容,如ASP.NET指令、Web窗體頁語法、Web窗體頁運(yùn)行過程等。2.1ASP.NET指令A(yù)SP.NET指令是以字符“@”開頭。分析器或編譯器在分析或編譯頁(包括窗體頁和母版頁)、用戶控件或其他資源文件時,頁、控件或文件可以通過ASP.NET指令指定編譯器的屬性。當(dāng)分析器或編譯器在處理頁、控件或文件時,這些設(shè)置生效。通常,這些指令需要包含在頁、控件或文件的開頭處。每個指令都可以包含一個或多個屬性(與值成對出現(xiàn))。2.1.1頁指令@Page分析器或編譯器在分析或編譯頁時,可以通過@Page指令設(shè)置分析器和編譯器的屬性。該指令只能包含在文件擴(kuò)展名為.aspx的文件中,聲明其語法如下:<%@Pageattribute="value"[attribute="value"...]%>@Page指令只能使用在Web窗體頁(.aspx)中,且每個頁只能包含一條@Page指令。當(dāng)Web窗體頁使用該指令時,它至少要包含一個屬性。2.1.3注冊指令@Register@Register指令提供了引用用戶控件或自定義控件的方法,并引用這些控件的文件(頁或者控件)能夠使用被引用的控件。換句話說,該指令創(chuàng)建一個標(biāo)記前綴,實(shí)現(xiàn)被引用的控件和其引用文件之間的關(guān)聯(lián)。最終,使得控件能夠在其引用文件中呈現(xiàn)出來。2.1.4引用指令@Reference@Reference指令將指定的頁或用戶控件鏈接到當(dāng)前頁或用戶控件,即在指定的頁或用戶控件和當(dāng)前頁或用戶控件之間建立動態(tài)連接。聲明該指令的語法如下:<%@ReferencePage="頁的路徑"Control="用戶控件的路徑"virtualPath="文件的虛擬路徑"%>2.1.5母版頁指令@Master分析器或編譯器在分析或編譯母版頁(.master)時,可以通過@Master指令設(shè)置分析器和編譯器的屬性。該指令只能在母版頁上使用,且一個母版頁只能包含一條@Master指令。聲明@Master指令的語法如下:<%@Masterattribute="value"[attribute="value"...]%>2.1.7上一頁類型指令@PreviousPageType@PreviousPageType指令提供了獲取上一頁(當(dāng)前頁的Page對象的PreviousPage屬性的值)的強(qiáng)類型的方法。它只能使用在Web窗體頁(.aspx)上,聲明該指令的語法如下:<%@PreviousPageTypeattribute="value"[attribute="value"...]%>@PreviousPageType指令包含兩個屬性:TypeName和VirtualPath。其中,TypeName屬性指定上一頁的類型的名稱;VirtualPath屬性指定生成強(qiáng)類型引用的文件的路徑,它的值為相對路徑。一般情況下,TypeName和VirtualPath屬性不能同時使用。下面的代碼示例設(shè)置了生成強(qiáng)類型的文件的VirtualPath屬性的值為“~/OtherPreviousPageType.aspx”。<%@PreviousPageTypeVirtualPath="~/OtherPreviousPageType.aspx"%>2.1.8輸出緩沖指令@OutputCache@OutputCache指令設(shè)置Web窗體頁或用戶控件的輸出緩存策略。2.1.9導(dǎo)入指令@Import@Import指令將命名空間導(dǎo)入到文件中,使得該文件可以使用導(dǎo)入的命名空間中的類和接口。它不但可以導(dǎo)入.NET框架類庫中的命名空間,而且可以導(dǎo)入用戶自定義的命名空間。聲明該指令的語法如下:<%@Importnamespace="value"%>2.1.11執(zhí)行指令@Implements@Implements指令指定當(dāng)前文件(如Web窗體頁、用戶控件等)需要實(shí)現(xiàn)的.NET框架類庫中的接口。如果用戶在文件中需要實(shí)現(xiàn)接口時,用戶必須在<script>標(biāo)記中實(shí)現(xiàn)接口所需要的方法和屬性。若文件需要實(shí)現(xiàn)多個接口,則可以在該文件上多次使用@Implements指令。@Implements指令只包含一個屬性:interface。該屬性表示當(dāng)前文件需要實(shí)現(xiàn)的接口的名稱。聲明@Implements指令的語法如下:<%@Implementsinterface="MyValidInterfaceName"%>2.2Web窗體頁語法Web窗體頁不但可以包括靜態(tài)內(nèi)容,而且可以包含使用“<%%>”或“<script></script>”標(biāo)記的內(nèi)容。這些標(biāo)記使用不同的語法結(jié)構(gòu),其具體包括如下:代碼呈現(xiàn)塊和代碼聲明塊語法。服務(wù)器控件語法(包括HTML服務(wù)器控件和Web服務(wù)器控件)。聲明性表達(dá)式語法。數(shù)據(jù)綁定表達(dá)式語法。2.2.1代碼聲明和代碼呈現(xiàn)語法代碼聲明塊必須定義在<script>標(biāo)記中,并且必須使用“runat=server”屬性進(jìn)行標(biāo)記。代碼聲明塊語法如下:<scriptrunat="server"language="codelanguage"Src="pathname">代碼...</script>2.2.3聲明性表達(dá)式語法聲明性表達(dá)式語法是ASP.NET2.0新增的語法,它可以在分析Web窗體頁之前將表達(dá)式的值替換到頁中。使用聲明性表達(dá)式可以獲取配置文件Web.Config中連接字符串的值,也可以從資源文件中獲取當(dāng)前本地化的值。聲明性表達(dá)式語法如下:<%$表達(dá)式%>2.2.4數(shù)據(jù)綁定語法數(shù)據(jù)綁定表達(dá)式能夠?qū)⒖丶傩越壎ǖ綌?shù)據(jù)容器值。其通常放置在“<%#…%>”標(biāo)記元素之中。當(dāng)其父控件的DataBind()方法被調(diào)用時,將計(jì)算標(biāo)記中表達(dá)式的值。其中,數(shù)據(jù)綁定表達(dá)式可以包含在服務(wù)器控件的“屬性/值”對的值一側(cè),也可以放置在Web窗體頁中的任何位置。2.2.5對象標(biāo)記語法對象標(biāo)記語法能夠在Web窗體頁中聲明或創(chuàng)建COM或.NETFramework中的對象,即聲明或創(chuàng)建變量的實(shí)例。服務(wù)器端對象標(biāo)記語法存在3種方式,2.2.7服務(wù)器端注釋語法服務(wù)器端注釋語法允許將代碼注釋,或內(nèi)容嵌入到Web窗體頁,或用戶控件的任何位置(除了被<script>標(biāo)記元素標(biāo)記的代碼塊內(nèi)部)。被注釋的代碼或內(nèi)容將不被執(zhí)行或呈現(xiàn)。服務(wù)器端注釋語法如下:<%--注釋的內(nèi)容或代碼--%>2.2.8內(nèi)聯(lián)代碼分離和代碼隱藏分離方式ASP.NET提供了兩種組織Web窗體頁中代碼的方式:內(nèi)聯(lián)代碼分離方式和代碼隱藏分離方式。用戶在創(chuàng)建Web窗體頁時,可以設(shè)置頁的代碼組織方式,如圖2.6所示。如果用戶選中了【將代碼放在單獨(dú)的文件中】復(fù)選框,則頁的代碼組織方式為代碼隱藏分離方式,否則為內(nèi)聯(lián)代碼分離方式。2.3Web窗體頁運(yùn)行過程當(dāng)ASP.NETWeb應(yīng)用程序運(yùn)行時,每一個被請求的Web窗體頁都將經(jīng)歷一個運(yùn)行過程(即生命周期)。在該運(yùn)行過程中,ASP.NET將對Web窗體頁進(jìn)行一系列的處理步驟,如頁請求、初始化頁面、載入頁面、處理事件、預(yù)呈現(xiàn)頁面、呈現(xiàn)頁面、卸載頁面等。2.3.2載入頁面Web窗體頁初始化之后,ASP.NET分析器或編譯器將載入頁。在此過程中,如果當(dāng)前請求是回發(fā)請求(不是第一次請求),則讀取頁和控件的視圖狀態(tài)(ViewState)中讀取其狀態(tài),并將狀態(tài)的值應(yīng)用到頁和控件。在此過程中,頁將觸發(fā)Page_Load事件。該事件讀取并更新控件屬性。2.3.3處理事件Web窗體頁載入之后,將處理頁的回發(fā)事件。在此過程中,如果當(dāng)前請求是回發(fā)請求(不是第一次請求),則將觸發(fā)頁或控件的定義的事件處理程序。如Button控件的Click事件等。注意:在處理回發(fā)事件之前,如果頁包含了需要執(zhí)行驗(yàn)證操作的控件,那么頁首先檢查頁和各個驗(yàn)證控件的IsValid屬性是否為true。如果為true,則處理回發(fā)事件,否則行處理回發(fā)事件。2.3.4預(yù)呈現(xiàn)頁面Web窗體頁處理回發(fā)事件之后,將預(yù)呈現(xiàn)頁面。在此過程中,頁將執(zhí)行其被呈現(xiàn)之前的處理步驟。此時,頁將觸發(fā)Page_PreRender事件。注意:該事件是對頁的內(nèi)容進(jìn)行最后修改。2.3.6卸載頁面Web窗體頁的最后一個階段——卸載頁面,當(dāng)頁面被釋放時發(fā)生。在該階段中,頁將執(zhí)行最后的清理工作,釋放頁占用的資源等。最典型的操作是關(guān)閉打開的文件或數(shù)據(jù)庫的連接。在此過程中,頁將觸發(fā)Page_Unload事件。該事件將執(zhí)行以下操作:關(guān)閉打開的文件。關(guān)閉打開的數(shù)據(jù)庫連接。完成日志。完成或其他特定的任務(wù)。2.3.7驗(yàn)證頁面運(yùn)行過程下面的代碼實(shí)例在Default.aspx頁面中,定義了頁面運(yùn)行過程中的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度購物中心水電維修服務(wù)合同(1000字)6篇
- 二零二五年度冷鏈物流食品供應(yīng)合同3篇
- 二零二五年度環(huán)保材料買賣合同樣本詳述3篇
- 二零二五年度綠色建筑文明施工與環(huán)境保護(hù)一體化協(xié)議書3篇
- 二零二五年度行政上訴狀編制要點(diǎn)與官方格式3篇
- 二零二五年度企業(yè)委托高校培養(yǎng)博士研究生技術(shù)合作協(xié)議3篇
- 二零二五年度互聯(lián)網(wǎng)醫(yī)療健康品牌授權(quán)協(xié)議3篇
- 二零二五年度企業(yè)股權(quán)激勵協(xié)議(限制性股權(quán))6篇
- 二零二五年度農(nóng)產(chǎn)品銷售承包協(xié)議
- 2025版科技研發(fā)園區(qū)物業(yè)管理權(quán)轉(zhuǎn)讓與技術(shù)創(chuàng)新服務(wù)合同3篇
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 《活著》讀書分享課件
- 新課標(biāo)人教版小學(xué)數(shù)學(xué)六年級下冊集體備課教學(xué)案全冊表格式
- 校園保潔培訓(xùn)課件
- 渠道管理就這樣做
- 大客戶銷售這樣說這樣做
- 精裝修樣板房房屋使用說明
- 喬遷新居結(jié)婚典禮主持詞
- 小學(xué)四年級數(shù)學(xué)競賽試題(附答案)
- 魯科版高中化學(xué)必修2全冊教案
- 人口分布 高一地理下學(xué)期人教版 必修第二冊
評論
0/150
提交評論