精通WEB2.0之第02章-ASP-30P課件_第1頁(yè)
精通WEB2.0之第02章-ASP-30P課件_第2頁(yè)
精通WEB2.0之第02章-ASP-30P課件_第3頁(yè)
精通WEB2.0之第02章-ASP-30P課件_第4頁(yè)
精通WEB2.0之第02章-ASP-30P課件_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第2章ASP.NETWeb窗體頁(yè)徹底透析ASP.NETWeb窗體頁(yè)文件的擴(kuò)展名為“.aspx”。創(chuàng)建一個(gè)Web窗體頁(yè)方法很簡(jiǎn)單:用戶只需將現(xiàn)有的HTML文件的文件擴(kuò)展名修改為“.aspx”即可,不需要修改該文件的任何代碼。這一小節(jié)將詳細(xì)介紹Web窗體頁(yè)相關(guān)內(nèi)容,如ASP.NET指令、Web窗體頁(yè)語(yǔ)法、Web窗體頁(yè)運(yùn)行過(guò)程等。2.1ASP.NET指令A(yù)SP.NET指令是以字符“@”開(kāi)頭。分析器或編譯器在分析或編譯頁(yè)(包括窗體頁(yè)和母版頁(yè))、用戶控件或其他資源文件時(shí),頁(yè)、控件或文件可以通過(guò)ASP.NET指令指定編譯器的屬性。當(dāng)分析器或編譯器在處理頁(yè)、控件或文件時(shí),這些設(shè)置生效。通常,這些指令需要包含在頁(yè)、控件或文件的開(kāi)頭處。每個(gè)指令都可以包含一個(gè)或多個(gè)屬性(與值成對(duì)出現(xiàn))。2.1.1頁(yè)指令@Page分析器或編譯器在分析或編譯頁(yè)時(shí),可以通過(guò)@Page指令設(shè)置分析器和編譯器的屬性。該指令只能包含在文件擴(kuò)展名為.aspx的文件中,聲明其語(yǔ)法如下:<%@Pageattribute="value"[attribute="value"...]%>@Page指令只能使用在Web窗體頁(yè)(.aspx)中,且每個(gè)頁(yè)只能包含一條@Page指令。當(dāng)Web窗體頁(yè)使用該指令時(shí),它至少要包含一個(gè)屬性。2.1.3注冊(cè)指令@Register@Register指令提供了引用用戶控件或自定義控件的方法,并引用這些控件的文件(頁(yè)或者控件)能夠使用被引用的控件。換句話說(shuō),該指令創(chuàng)建一個(gè)標(biāo)記前綴,實(shí)現(xiàn)被引用的控件和其引用文件之間的關(guān)聯(lián)。最終,使得控件能夠在其引用文件中呈現(xiàn)出來(lái)。2.1.4引用指令@Reference@Reference指令將指定的頁(yè)或用戶控件鏈接到當(dāng)前頁(yè)或用戶控件,即在指定的頁(yè)或用戶控件和當(dāng)前頁(yè)或用戶控件之間建立動(dòng)態(tài)連接。聲明該指令的語(yǔ)法如下:<%@ReferencePage="頁(yè)的路徑"Control="用戶控件的路徑"virtualPath="文件的虛擬路徑"%>2.1.5母版頁(yè)指令@Master分析器或編譯器在分析或編譯母版頁(yè)(.master)時(shí),可以通過(guò)@Master指令設(shè)置分析器和編譯器的屬性。該指令只能在母版頁(yè)上使用,且一個(gè)母版頁(yè)只能包含一條@Master指令。聲明@Master指令的語(yǔ)法如下:<%@Masterattribute="value"[attribute="value"...]%>2.1.7上一頁(yè)類(lèi)型指令@PreviousPageType@PreviousPageType指令提供了獲取上一頁(yè)(當(dāng)前頁(yè)的Page對(duì)象的PreviousPage屬性的值)的強(qiáng)類(lèi)型的方法。它只能使用在Web窗體頁(yè)(.aspx)上,聲明該指令的語(yǔ)法如下:<%@PreviousPageTypeattribute="value"[attribute="value"...]%>@PreviousPageType指令包含兩個(gè)屬性:TypeName和VirtualPath。其中,TypeName屬性指定上一頁(yè)的類(lèi)型的名稱(chēng);VirtualPath屬性指定生成強(qiáng)類(lèi)型引用的文件的路徑,它的值為相對(duì)路徑。一般情況下,TypeName和VirtualPath屬性不能同時(shí)使用。下面的代碼示例設(shè)置了生成強(qiáng)類(lèi)型的文件的VirtualPath屬性的值為“~/OtherPreviousPageType.aspx”。<%@PreviousPageTypeVirtualPath="~/OtherPreviousPageType.aspx"%>2.1.8輸出緩沖指令@OutputCache@OutputCache指令設(shè)置Web窗體頁(yè)或用戶控件的輸出緩存策略。2.1.9導(dǎo)入指令@Import@Import指令將命名空間導(dǎo)入到文件中,使得該文件可以使用導(dǎo)入的命名空間中的類(lèi)和接口。它不但可以導(dǎo)入.NET框架類(lèi)庫(kù)中的命名空間,而且可以導(dǎo)入用戶自定義的命名空間。聲明該指令的語(yǔ)法如下:<%@Importnamespace="value"%>2.1.11執(zhí)行指令@Implements@Implements指令指定當(dāng)前文件(如Web窗體頁(yè)、用戶控件等)需要實(shí)現(xiàn)的.NET框架類(lèi)庫(kù)中的接口。如果用戶在文件中需要實(shí)現(xiàn)接口時(shí),用戶必須在<script>標(biāo)記中實(shí)現(xiàn)接口所需要的方法和屬性。若文件需要實(shí)現(xiàn)多個(gè)接口,則可以在該文件上多次使用@Implements指令。@Implements指令只包含一個(gè)屬性:interface。該屬性表示當(dāng)前文件需要實(shí)現(xiàn)的接口的名稱(chēng)。聲明@Implements指令的語(yǔ)法如下:<%@Implementsinterface="MyValidInterfaceName"%>2.2Web窗體頁(yè)語(yǔ)法Web窗體頁(yè)不但可以包括靜態(tài)內(nèi)容,而且可以包含使用“<%%>”或“<script></script>”標(biāo)記的內(nèi)容。這些標(biāo)記使用不同的語(yǔ)法結(jié)構(gòu),其具體包括如下:代碼呈現(xiàn)塊和代碼聲明塊語(yǔ)法。服務(wù)器控件語(yǔ)法(包括HTML服務(wù)器控件和Web服務(wù)器控件)。聲明性表達(dá)式語(yǔ)法。數(shù)據(jù)綁定表達(dá)式語(yǔ)法。2.2.1代碼聲明和代碼呈現(xiàn)語(yǔ)法代碼聲明塊必須定義在<script>標(biāo)記中,并且必須使用“runat=server”屬性進(jìn)行標(biāo)記。代碼聲明塊語(yǔ)法如下:<scriptrunat="server"language="codelanguage"Src="pathname">代碼...</script>2.2.3聲明性表達(dá)式語(yǔ)法聲明性表達(dá)式語(yǔ)法是ASP.NET2.0新增的語(yǔ)法,它可以在分析Web窗體頁(yè)之前將表達(dá)式的值替換到頁(yè)中。使用聲明性表達(dá)式可以獲取配置文件Web.Config中連接字符串的值,也可以從資源文件中獲取當(dāng)前本地化的值。聲明性表達(dá)式語(yǔ)法如下:<%$表達(dá)式%>2.2.4數(shù)據(jù)綁定語(yǔ)法數(shù)據(jù)綁定表達(dá)式能夠?qū)⒖丶傩越壎ǖ綌?shù)據(jù)容器值。其通常放置在“<%#…%>”標(biāo)記元素之中。當(dāng)其父控件的DataBind()方法被調(diào)用時(shí),將計(jì)算標(biāo)記中表達(dá)式的值。其中,數(shù)據(jù)綁定表達(dá)式可以包含在服務(wù)器控件的“屬性/值”對(duì)的值一側(cè),也可以放置在Web窗體頁(yè)中的任何位置。2.2.5對(duì)象標(biāo)記語(yǔ)法對(duì)象標(biāo)記語(yǔ)法能夠在Web窗體頁(yè)中聲明或創(chuàng)建COM或.NETFramework中的對(duì)象,即聲明或創(chuàng)建變量的實(shí)例。服務(wù)器端對(duì)象標(biāo)記語(yǔ)法存在3種方式,2.2.7服務(wù)器端注釋語(yǔ)法服務(wù)器端注釋語(yǔ)法允許將代碼注釋?zhuān)騼?nèi)容嵌入到Web窗體頁(yè),或用戶控件的任何位置(除了被<script>標(biāo)記元素標(biāo)記的代碼塊內(nèi)部)。被注釋的代碼或內(nèi)容將不被執(zhí)行或呈現(xiàn)。服務(wù)器端注釋語(yǔ)法如下:<%--注釋的內(nèi)容或代碼--%>2.2.8內(nèi)聯(lián)代碼分離和代碼隱藏分離方式ASP.NET提供了兩種組織Web窗體頁(yè)中代碼的方式:內(nèi)聯(lián)代碼分離方式和代碼隱藏分離方式。用戶在創(chuàng)建Web窗體頁(yè)時(shí),可以設(shè)置頁(yè)的代碼組織方式,如圖2.6所示。如果用戶選中了【將代碼放在單獨(dú)的文件中】復(fù)選框,則頁(yè)的代碼組織方式為代碼隱藏分離方式,否則為內(nèi)聯(lián)代碼分離方式。2.3Web窗體頁(yè)運(yùn)行過(guò)程當(dāng)ASP.NETWeb應(yīng)用程序運(yùn)行時(shí),每一個(gè)被請(qǐng)求的Web窗體頁(yè)都將經(jīng)歷一個(gè)運(yùn)行過(guò)程(即生命周期)。在該運(yùn)行過(guò)程中,ASP.NET將對(duì)Web窗體頁(yè)進(jìn)行一系列的處理步驟,如頁(yè)請(qǐng)求、初始化頁(yè)面、載入頁(yè)面、處理事件、預(yù)呈現(xiàn)頁(yè)面、呈現(xiàn)頁(yè)面、卸載頁(yè)面等。2.3.2載入頁(yè)面Web窗體頁(yè)初始化之后,ASP.NET分析器或編譯器將載入頁(yè)。在此過(guò)程中,如果當(dāng)前請(qǐng)求是回發(fā)請(qǐng)求(不是第一次請(qǐng)求),則讀取頁(yè)和控件的視圖狀態(tài)(ViewState)中讀取其狀態(tài),并將狀態(tài)的值應(yīng)用到頁(yè)和控件。在此過(guò)程中,頁(yè)將觸發(fā)Page_Load事件。該事件讀取并更新控件屬性。2.3.3處理事件Web窗體頁(yè)載入之后,將處理頁(yè)的回發(fā)事件。在此過(guò)程中,如果當(dāng)前請(qǐng)求是回發(fā)請(qǐng)求(不是第一次請(qǐng)求),則將觸發(fā)頁(yè)或控件的定義的事件處理程序。如Button控件的Click事件等。注意:在處理回發(fā)事件之前,如果頁(yè)包含了需要執(zhí)行驗(yàn)證操作的控件,那么頁(yè)首先檢查頁(yè)和各個(gè)驗(yàn)證控件的IsValid屬性是否為true。如果為true,則處理回發(fā)事件,否則行處理回發(fā)事件。2.3.4預(yù)呈現(xiàn)頁(yè)面Web窗體頁(yè)處理回發(fā)事件之后,將預(yù)呈現(xiàn)頁(yè)面。在此過(guò)程中,頁(yè)將執(zhí)行其被呈現(xiàn)之前的處理步驟。此時(shí),頁(yè)將觸發(fā)Page_PreRender事件。注意:該事件是對(duì)頁(yè)的內(nèi)容進(jìn)行最后修改。2.3.6卸載頁(yè)面Web窗體頁(yè)的最后一個(gè)階段——卸載頁(yè)面,當(dāng)頁(yè)面被釋放時(shí)發(fā)生。在該階段中,頁(yè)將執(zhí)行最后的清理工作,釋放頁(yè)占用的資源等。最典型的操作是關(guān)閉打開(kāi)的文件或數(shù)據(jù)庫(kù)的連接。在此過(guò)程中,頁(yè)將觸發(fā)Page_Unload事件。該事件將執(zhí)行以下操作:關(guān)閉打開(kāi)的文件。關(guān)閉打開(kāi)的數(shù)據(jù)庫(kù)連接。完成日志。完成或其他特定的任務(wù)。2.3.7驗(yàn)證頁(yè)面運(yùn)行過(guò)程下面的代碼實(shí)例在Default.aspx頁(yè)面中,定義了頁(yè)面運(yùn)行過(guò)程中的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論