第10章 ASP.NET高級程序開發(fā)_第1頁
第10章 ASP.NET高級程序開發(fā)_第2頁
第10章 ASP.NET高級程序開發(fā)_第3頁
第10章 ASP.NET高級程序開發(fā)_第4頁
第10章 ASP.NET高級程序開發(fā)_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第10章ASP.NET高級程序開發(fā)瀏覽一些典型的大型Web網(wǎng)站時,用戶會發(fā)現(xiàn)這些站點(diǎn)幾乎都包含類似的外觀,如一些相同的圖形、外表、用戶界面(UI),甚至還包含一些導(dǎo)航菜單或搜索窗體,而且這些Web網(wǎng)站中的頁面與頁面之間給人的總體外觀和感覺都比較統(tǒng)一,非常美觀。為了有一個確定的、優(yōu)化的解決方案,在不同的技術(shù)發(fā)展階段有著不同的實(shí)現(xiàn)方法,如母版頁和用戶控件。10.1母版頁技術(shù)10.1.1母版頁的概念及優(yōu)點(diǎn)為了減少在網(wǎng)頁設(shè)計時出現(xiàn)的一變則改變整個網(wǎng)站的問題發(fā)生,Microsoft在VisualStudio2005中增加了母版頁的功能。它與網(wǎng)頁模板有些相像,不同的是它不必每個頁面都去更新,修改一次,所有的網(wǎng)頁都會隨之改變。母版頁是一個具有擴(kuò)展名為.master(如MyMaster.master)的ASP.NET文件,它可以包含靜態(tài)布局。母版頁由特殊的@Master指令識別,該指令的使用使母版頁有別于內(nèi)容頁(關(guān)于內(nèi)容頁,下一小節(jié)將會詳解),且每個.master文件只能包含一條@

Master指令。

@Master指令支持幾個屬性,然而它的大多數(shù)屬性都與@Page指令的屬性相同。表10.1詳細(xì)描述了對母版頁有特殊含義的屬性。屬性說明ClassName指定為生成母版頁而創(chuàng)建的類的名稱。該值可以是任何一個有效的類名,但不用包括命名空間。默認(rèn)情況下,simple.master的類名是ASP.simple_masterCodeFile指明包含與母版頁關(guān)聯(lián)的任何源代碼的文件的URLInherits指定母版頁要繼承的代碼隱藏類。這可以是任何一個派生于MasterPage的類MasterPageFile指定該母版頁引用的母版頁的名稱。通過使用網(wǎng)頁用來引用一個母版頁的相同方法,一個母版頁可以引用另一個母版頁。如果設(shè)置了該屬性,則會得到一個嵌套的母版頁表10.1 @Master指令的屬性及說明母版頁具有下面的優(yōu)點(diǎn):(1)使用母版頁可以集中處理頁的通用功能,以便可以只在一個位置上進(jìn)行更新,在很大程度上提高了工作效率。(2)使用母版頁可以方便地創(chuàng)建一組公共控件和代碼,并將其應(yīng)用于網(wǎng)站中所有引用該母版頁的網(wǎng)頁。例如,可以在母版頁上使用控件來創(chuàng)建一個應(yīng)用于所有頁的功能菜單。(3)可以通過控制母版頁中的占位符ContentPlaceHolder對網(wǎng)頁進(jìn)行布局。(4)由內(nèi)容頁和母版頁組成的對象模型能夠?yàn)閼?yīng)用程序提供一種高效、易用的實(shí)現(xiàn)方式,并且這種對象模型的執(zhí)行效率比以前的處理方式有了很大的提高。10.1.2母版頁運(yùn)行機(jī)制在ASP.NET的編譯過程中,將會把母版頁和內(nèi)容頁這兩種文件的內(nèi)容合并執(zhí)行,母版頁的內(nèi)容將融入到內(nèi)容頁中,并且在用戶請求時動態(tài)地產(chǎn)生一個服務(wù)于用戶的頁面,可形象地稱之為結(jié)果頁,如圖10.1所示。需要明確的是,這種合并過程在編譯時只發(fā)生一次,并且母版頁的內(nèi)容絕不能充當(dāng)內(nèi)容頁的基類。圖10.1最終的頁面結(jié)構(gòu)結(jié)合了母版頁和內(nèi)容頁母版頁和內(nèi)容頁的運(yùn)行過程如下:(1)用戶通過鍵入內(nèi)容頁的URL來請求某頁。(2)獲取該頁后,讀取@Page指令。如果該指令引用一個母版頁,則也讀取該母版頁。如果這是第一次請求這兩個頁,則兩個頁都要進(jìn)行編譯。(3)包含更新的內(nèi)容的母版頁合并到內(nèi)容頁的控件樹中。(4)將各個Content控件的內(nèi)容合并到母版頁中相應(yīng)的ContentPlaceHolder控件中。(5)瀏覽器中呈現(xiàn)得到的合并頁。10.1.3創(chuàng)建母版頁在ASP.NET2.0中,除了@Master指令和一個或多個ContentPlaceHolder服務(wù)器控件外,母版頁基本上類似于標(biāo)準(zhǔn)的ASP.NET頁。例如,二者在代碼結(jié)構(gòu)方面都需要聲明<html>、<body>、<form>以及其他Web元素等。二者唯一的重大區(qū)別就是在母版頁中使用的ContentPlaceHolder容器控件(普通的.aspx文件中不允許使用該控件)。該容器控件起到一個占位符的作用,它能夠在母版頁中標(biāo)識出某個區(qū)域,可以讓相關(guān)網(wǎng)頁插入定制控件的位置。但母版頁中包含的是頁面的公共部分,因此在創(chuàng)建母版頁之前,必須判斷哪些內(nèi)容是頁面的公共部分。圖10.2選擇“添加新項”命令“添加新項”命令圖10.3創(chuàng)建母版頁命名母版頁并選擇C#語言圖10.4將母版頁添加到“解決方案資源管理器”中主母版頁圖10.5默認(rèn)的母版頁ContentPlaceHolder容器控件程序中應(yīng)用的母版頁圖10.6修改后的母版頁在工具箱中添加ContentPlaceHolder容器控件10.1.4創(chuàng)建內(nèi)容頁在創(chuàng)建完一個完整的母版頁之后,接下來必然要創(chuàng)建內(nèi)容頁。內(nèi)容頁的創(chuàng)建與母版頁的創(chuàng)建差不多,其創(chuàng)建過程也比較簡單。雖然內(nèi)容頁的擴(kuò)展名與普通ASP.NET頁面相同,但是其代碼結(jié)構(gòu)方面還是有著很大差別的。在創(chuàng)建內(nèi)容頁的過程中,希望讀者始終要牢記以下兩點(diǎn):一是內(nèi)容頁中所有內(nèi)容必須包含在Content控件中;二是內(nèi)容頁必須綁定母版頁。圖10.7創(chuàng)建內(nèi)容頁選擇“Web窗體”項創(chuàng)建內(nèi)容頁時一定要勾選這兩項圖10.8選擇母版頁選擇母版頁圖10.9基于母版頁創(chuàng)建的頁面內(nèi)容頁中的Content容器控件10.2Web用戶控件技術(shù)10.2.1用戶控件的概念及優(yōu)點(diǎn)

Web用戶控件是一種服務(wù)器控件,它與ASP.NET頁面有著同樣的“所見即所得”的特點(diǎn)和聲明性樣式,并以.ascx為擴(kuò)展名存儲為文本文件。

Web用戶控件與完整的ASP.NET網(wǎng)頁(即.aspx文件)非常相似,同時具有自己的用戶界面頁和代碼。開發(fā)人員可以采取與創(chuàng)建ASP.NET頁相似的方式創(chuàng)建Web用戶控件,然后向其中添加所需的標(biāo)記和子控件。

Web用戶控件可以像頁面一樣包含對其內(nèi)容進(jìn)行操作(包括執(zhí)行數(shù)據(jù)綁定等任務(wù))的代碼。此外,用戶控件還擁有自己的對象模型的類,頁面開發(fā)人員可以對其編程,它比服務(wù)器端包含文件提供了更多的功能,為創(chuàng)建具有復(fù)雜用戶界面元素的控件帶來了極大方便。同時,編寫Web用戶控件的語言可以與包含它的頁面語言有所不同,這意味著使用公共語言運(yùn)行庫支持的任何語言編寫的Web用戶控件可以在同一個頁面中使用。用戶控件提供了一個面向?qū)ο蟮木幊棠P?,在一定程度上取代了服?wù)器端文件包含(<!--#include-->)指令,并且提供的功能比服務(wù)器端包含文件提供的功能多。使用用戶控件的主要優(yōu)點(diǎn)如下:(1)可以將常用的內(nèi)容或者控件以及控件的運(yùn)行程序邏輯設(shè)計為用戶控件,然后可以在多個網(wǎng)頁中重復(fù)使用該用戶控件,從而省去許多重復(fù)性的工作。(2)如果網(wǎng)頁內(nèi)容需要改變時,只需修改用戶控件中的內(nèi)容,其他添加使用該用戶控件的網(wǎng)頁會自動隨之改變,因此網(wǎng)頁的設(shè)計以及維護(hù)變得簡單易行。10.2.2用戶控件與普通的Web頁比較用戶控件幾乎與.aspx文件相同,但是仍存在以下不同之處:(1)用戶控件的文件擴(kuò)展名為.ascx。(2)用戶控件中沒有@Page指令,而是包含@Control指令,該指令對配置及其他屬性進(jìn)行定義。(3)用戶控件不能作為獨(dú)立文件運(yùn)行,而必須像處理任何控件一樣,將它們添加到ASP.NET頁中。(4)用戶控件中沒有html、body或form元素。10.2.3創(chuàng)建Web用戶控件創(chuàng)建普通用戶控件的步驟一般如下:(1)創(chuàng)建一個新文件并為其指定一個擴(kuò)展名為.ascx的文件名。(2)在該頁面的頂部創(chuàng)建一個@Control指令,并指定要為控件(如果有)使用的編程語言。(3)添加希望用戶控件顯示的控件。(4)添加用戶控件要執(zhí)行的任務(wù)(如處理控件事件或從數(shù)據(jù)源讀取數(shù)據(jù))的代碼。(5)如果希望在用戶控件和宿主頁之間共享信息,需要在控件中創(chuàng)建相應(yīng)的屬性。根據(jù)需要可以創(chuàng)建任何類的屬性。圖10.10“添加新項”對話框命名用戶控件選擇“web用戶控件”項10.2.4使用Web用戶控件如果已經(jīng)設(shè)計好了Web用戶控件,可以將其添加到一個或者多個網(wǎng)頁中。在同一個網(wǎng)頁中也可以重復(fù)使用多次,各個用戶控件會以不同ID來標(biāo)識。將用戶控件添加到網(wǎng)頁可以使用“Web窗體設(shè)計器”直接添加用戶控件。圖10.11將Web用戶控件添加至網(wǎng)頁圖10.12用戶控件的屬性窗口10.2.5使用Web用戶控件制作網(wǎng)站導(dǎo)航圖10.13使用Web用戶控件制作導(dǎo)航條10.3AJAX10.3.1AJAX定義

Ajax不是一種語言,而是用來描述一組技術(shù)的集合。

Ajax全稱是AsynchronousJavaScriptandXML(異步JavaScript和XML技術(shù)),囊括JavaScript腳本語言、CSS樣式表、XMLHttpRequest數(shù)據(jù)交換對象和DOM文檔對象或XMLDOM文檔對象,是提高互聯(lián)網(wǎng)性能的一種關(guān)鍵技術(shù)。10.3.2AJAX運(yùn)行原理

Ajax的核心是JavaScriptXmlHttpRequest對象。該對象在InternetExplorer5中首次引入,它是一種支持異步請求的技術(shù)。簡而言之,XmlHttpRequest對象可以使用JavaScript向服務(wù)器提出請求并處理響應(yīng),而不阻塞用戶。在創(chuàng)建Web站點(diǎn)時,在客戶端執(zhí)行屏幕更新為用戶提供了很大的靈活性。下面是使用Ajax可以完成的功能:(1)動態(tài)檢測網(wǎng)頁中的數(shù)據(jù),無需頁面重復(fù)加載。

(2)提升站點(diǎn)的性能,這是通過減少從服務(wù)器下載的數(shù)據(jù)量而實(shí)現(xiàn)的。

10.3.3AJAX開發(fā)環(huán)境的下載與安裝

Atlas是微軟開發(fā)的一套基于.NET的AJAX框架。在ASP.NET中,Atlas是一個新的Web技術(shù)開發(fā)包,它集成了一套功能非常強(qiáng)大的客戶端腳本庫,并與功能豐富的、基于服務(wù)器開發(fā)平臺的ASP.NET結(jié)合在一起。

Atlas開發(fā)的Web應(yīng)用程序能夠直接調(diào)用Web服務(wù)器來更新Web頁面中的數(shù)據(jù),而不需要重復(fù)加載頁面。

Atlas建立的Web應(yīng)用程序與傳統(tǒng)的Web應(yīng)用程序相比,關(guān)鍵的因素在于前者有更好的性能、響應(yīng)率和用戶接口(UI)。傳統(tǒng)的Web應(yīng)用程序在更新數(shù)據(jù)或者控件時頁面需要重復(fù)加載,這通常導(dǎo)致長時間的等待。另一方面,Atlas通過減少頁面重復(fù)加載,顯著地提升了應(yīng)用程序的性能。圖10.14選擇“DownloadASP.NETAJAXV1.0”超鏈接圖10.15選擇“DownloadASP.NETExtensionsv1.0”超鏈接圖10.16微軟公司網(wǎng)站頁面圖10.17下載AtlasFramework并保存到本地計算機(jī)

圖10.18Atlas安裝第一步界面圖10.19接受Atlas安裝協(xié)議圖10.20安裝Atlas完畢10.3.4創(chuàng)建AJAX網(wǎng)站在安裝Atlas環(huán)境過程中,默認(rèn)將ASP.NETAJAX-EnabledWebSit網(wǎng)站模板安裝在VisualStudio2005開發(fā)環(huán)境中,如圖10.21所示。如果要建立AJAX網(wǎng)站,直接選取ASP.NETAJAX-EnabledWebSit模板,單擊“確定”按鈕即可。10.3.5AJAX服務(wù)器控件圖10.21創(chuàng)建AJAX網(wǎng)站圖10.22Atlas服務(wù)器控件1.ScriptManager控件

ScriptManager控件負(fù)責(zé)管理Page頁面中所有的Atlas服務(wù)器控件,是Atlas的核心,有了ScriptManager控件才能夠讓Page局部更新起作用,所需要的JavaScript才會自動管理。因此開發(fā)Atlas網(wǎng)站時,每個頁面中必須添加ScriptManager控件作為管理。(1)EnablePageMethods屬性(2)EnablePartialRendering屬性(3)EnableScriptComponents屬性(4)Scripts屬性(5)Services屬性2.UpdatePanel控件早期的Atlas版本開發(fā)出很多的Atlas服務(wù)器控件,例如TextBox、Button等,隨著.NET服務(wù)器控件的更新,發(fā)現(xiàn)開發(fā)出這么多的Atlas服務(wù)器控件并不符合實(shí)際需要,最后微軟開發(fā)出了Atlas的UpdatePanel控件,由程序人員將ASP.NET服務(wù)器控件拖放到UpdatePanel控件中,使原本不具備AJAX能力的ASP.NET服

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論