版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第九章ASP.net高級(jí)程序設(shè)計(jì)2學(xué)時(shí)內(nèi)容提要母版頁(yè)能夠?yàn)锳SP.NET應(yīng)用程序創(chuàng)立統(tǒng)一的用戶界面和樣式,這是母版頁(yè)的核心功能。報(bào)表是將業(yè)務(wù)數(shù)據(jù)以表格的形式表達(dá),直觀且易于理解,通常用于財(cái)務(wù)數(shù)據(jù)的展現(xiàn)和某些數(shù)據(jù)信息的統(tǒng)計(jì)資料。第9章ASP.NET高級(jí)程序開發(fā)瀏覽一些典型的大型Web網(wǎng)站時(shí),用戶會(huì)發(fā)現(xiàn)這些站點(diǎn)幾乎都包含類似的外觀,如一些相同的圖形、外表、用戶界面〔UI〕,甚至還包含一些導(dǎo)航菜單或搜索窗體,而且這些Web網(wǎng)站中的頁(yè)面與頁(yè)面之間給人的總體外觀和感覺都比較統(tǒng)一,非常美觀。為了有一個(gè)確定的、優(yōu)化的解決方案,在不同的技術(shù)開展階段有著不同的實(shí)現(xiàn)方法,如母版頁(yè)和用戶控件。9.1母版頁(yè)技術(shù)9.1.1母版頁(yè)的概念及優(yōu)點(diǎn)為了減少在網(wǎng)頁(yè)設(shè)計(jì)時(shí)出現(xiàn)的一變那么改變整個(gè)網(wǎng)站的問(wèn)題發(fā)生,Microsoft在VisualStudio2005中增加了母版頁(yè)的功能。它與網(wǎng)頁(yè)模板有些相像,不同的是它不必每個(gè)頁(yè)面都去更新,修改一次,所有的網(wǎng)頁(yè)都會(huì)隨之改變。母版頁(yè)是一個(gè)具有擴(kuò)展名為.master〔如MyMaster.master〕的ASP.NET文件,它可以包含靜態(tài)布局。母版頁(yè)由特殊的@Master指令識(shí)別,該指令的使用使母版頁(yè)有別于內(nèi)容頁(yè)〔關(guān)于內(nèi)容頁(yè),下一小節(jié)將會(huì)詳解〕,且每個(gè).master文件只能包含一條@
Master指令。9.1.1母版頁(yè)的概念及優(yōu)點(diǎn)
@Master指令支持幾個(gè)屬性,然而它的大多數(shù)屬性都與@Page指令的屬性相同。表9.1詳細(xì)描述了對(duì)母版頁(yè)有特殊含義的屬性。屬性說(shuō)明ClassName指定為生成母版頁(yè)而創(chuàng)建的類的名稱。該值可以是任何一個(gè)有效的類名,但不用包括命名空間。默認(rèn)情況下,simple.master的類名是ASP.simple_masterCodeFile指明包含與母版頁(yè)關(guān)聯(lián)的任何源代碼的文件的URLInherits指定母版頁(yè)要繼承的代碼隱藏類。這可以是任何一個(gè)派生于MasterPage的類MasterPageFile指定該母版頁(yè)引用的母版頁(yè)的名稱。通過(guò)使用網(wǎng)頁(yè)用來(lái)引用一個(gè)母版頁(yè)的相同方法,一個(gè)母版頁(yè)可以引用另一個(gè)母版頁(yè)。如果設(shè)置了該屬性,則會(huì)得到一個(gè)嵌套的母版頁(yè)表9.1 @Master指令的屬性及說(shuō)明母版頁(yè)具有下面的優(yōu)點(diǎn):〔1〕使用母版頁(yè)可以集中處理頁(yè)的通用功能,以便可以只在一個(gè)位置上進(jìn)行更新,在很大程度上提高了工作效率?!?〕使用母版頁(yè)可以方便地創(chuàng)立一組公共控件和代碼,并將其應(yīng)用于網(wǎng)站中所有引用該母版頁(yè)的網(wǎng)頁(yè)。例如,可以在母版頁(yè)上使用控件來(lái)創(chuàng)立一個(gè)應(yīng)用于所有頁(yè)的功能菜單?!?〕可以通過(guò)控制母版頁(yè)中的占位符ContentPlaceHolder對(duì)網(wǎng)頁(yè)進(jìn)行布局?!?〕由內(nèi)容頁(yè)和母版頁(yè)組成的對(duì)象模型能夠?yàn)閼?yīng)用程序提供一種高效、易用的實(shí)現(xiàn)方式,并且這種對(duì)象模型的執(zhí)行效率比以前的處理方式有了很大的提高。9.1.2母版頁(yè)運(yùn)行機(jī)制在ASP.NET的編譯過(guò)程中,將會(huì)把母版頁(yè)和內(nèi)容頁(yè)這兩種文件的內(nèi)容合并執(zhí)行,母版頁(yè)的內(nèi)容將融入到內(nèi)容頁(yè)中,并且在用戶請(qǐng)求時(shí)動(dòng)態(tài)地產(chǎn)生一個(gè)效勞于用戶的頁(yè)面,可形象地稱之為結(jié)果頁(yè),如圖9.1所示。需要明確的是,這種合并過(guò)程在編譯時(shí)只發(fā)生一次,并且母版頁(yè)的內(nèi)容絕不能充當(dāng)內(nèi)容頁(yè)的基類。圖9.1最終的頁(yè)面結(jié)構(gòu)結(jié)合了母版頁(yè)和內(nèi)容頁(yè)母版頁(yè)和內(nèi)容頁(yè)的運(yùn)行過(guò)程如下:〔1〕用戶通過(guò)鍵入內(nèi)容頁(yè)的URL來(lái)請(qǐng)求某頁(yè)?!?〕獲取該頁(yè)后,讀取@Page指令。如果該指令引用一個(gè)母版頁(yè),那么也讀取該母版頁(yè)。如果這是第一次請(qǐng)求這兩個(gè)頁(yè),那么兩個(gè)頁(yè)都要進(jìn)行編譯?!?〕包含更新的內(nèi)容的母版頁(yè)合并到內(nèi)容頁(yè)的控件樹中?!?〕將各個(gè)Content控件的內(nèi)容合并到母版頁(yè)中相應(yīng)的ContentPlaceHolder控件中?!?〕瀏覽器中呈現(xiàn)得到的合并頁(yè)。9.1.3創(chuàng)立母版頁(yè)在ASP.NET2.0中,除了@Master指令和一個(gè)或多個(gè)ContentPlaceHolder效勞器控件外,母版頁(yè)根本上類似于標(biāo)準(zhǔn)的ASP.NET頁(yè)。例如,二者在代碼結(jié)構(gòu)方面都需要聲明<html>、<body>、<form>以及其他Web元素等。二者唯一的重大區(qū)別就是在母版頁(yè)中使用的ContentPlaceHolder容器控件〔普通的.aspx文件中不允許使用該控件〕。該容器控件起到一個(gè)占位符的作用,它能夠在母版頁(yè)中標(biāo)識(shí)出某個(gè)區(qū)域,可以讓相關(guān)網(wǎng)頁(yè)插入定制控件的位置。但母版頁(yè)中包含的是頁(yè)面的公共局部,因此在創(chuàng)立母版頁(yè)之前,必須判斷哪些內(nèi)容是頁(yè)面的公共局部。圖9.2選擇“添加新項(xiàng)”命令“添加新項(xiàng)”命令圖9.3創(chuàng)立母版頁(yè)命名母版頁(yè)并選擇C#語(yǔ)言圖9.4將母版頁(yè)添加到“解決方案資源管理器”中主母版頁(yè)圖9.5默認(rèn)的母版頁(yè)ContentPlaceHolder容器控件程序中應(yīng)用的母版頁(yè)圖9.6修改后的母版頁(yè)在工具箱中添加ContentPlaceHolder容器控件9.1.4創(chuàng)立內(nèi)容頁(yè)在創(chuàng)立完一個(gè)完整的母版頁(yè)之后,接下來(lái)必然要?jiǎng)?chuàng)立內(nèi)容頁(yè)。內(nèi)容頁(yè)的創(chuàng)立與母版頁(yè)的創(chuàng)立差不多,其創(chuàng)立過(guò)程也比較簡(jiǎn)單。雖然內(nèi)容頁(yè)的擴(kuò)展名與普通ASP.NET頁(yè)面相同,但是其代碼結(jié)構(gòu)方面還是有著很大差異的。在創(chuàng)立內(nèi)容頁(yè)的過(guò)程中,希望讀者始終要牢記以下兩點(diǎn):一是內(nèi)容頁(yè)中所有內(nèi)容必須包含在Content控件中;二是內(nèi)容頁(yè)必須綁定母版頁(yè)。圖9.7創(chuàng)立內(nèi)容頁(yè)選擇“Web窗體”項(xiàng)創(chuàng)立內(nèi)容頁(yè)時(shí)一定要勾選這兩項(xiàng)圖9.8選擇母版頁(yè)選擇母版頁(yè)圖9.9基于母版頁(yè)創(chuàng)立的頁(yè)面內(nèi)容頁(yè)中的Content容器控件9.2Web用戶控件技術(shù)9.2.1用戶控件的概念及優(yōu)點(diǎn)Web用戶控件是一種效勞器控件,它與ASP.NET頁(yè)面有著同樣的“所見即所得”的特點(diǎn)和聲明性樣式,并以.ascx為擴(kuò)展名存儲(chǔ)為文本文件。Web用戶控件與完整的ASP.NET網(wǎng)頁(yè)〔即.aspx文件〕非常相似,同時(shí)具有自己的用戶界面頁(yè)和代碼。開發(fā)人員可以采取與創(chuàng)立ASP.NET頁(yè)相似的方式創(chuàng)立Web用戶控件,然后向其中添加所需的標(biāo)記和子控件。Web用戶控件可以像頁(yè)面一樣包含對(duì)其內(nèi)容進(jìn)行操作〔包括執(zhí)行數(shù)據(jù)綁定等任務(wù)〕的代碼。此外,用戶控件還擁有自己的對(duì)象模型的類,頁(yè)面開發(fā)人員可以對(duì)其編程,它比效勞器端包含文件提供了更多的功能,為創(chuàng)立具有復(fù)雜用戶界面元素的控件帶來(lái)了極大方便。同時(shí),編寫Web用戶控件的語(yǔ)言可以與包含它的頁(yè)面語(yǔ)言有所不同,這意味著使用公共語(yǔ)言運(yùn)行庫(kù)支持的任何語(yǔ)言編寫的Web用戶控件可以在同一個(gè)頁(yè)面中使用。用戶控件提供了一個(gè)面向?qū)ο蟮木幊棠P?,在一定程度上取代了效勞器端文件包含?lt;!--#include-->〕指令,并且提供的功能比效勞器端包含文件提供的功能多。使用用戶控件的主要優(yōu)點(diǎn)如下:〔1〕可以將常用的內(nèi)容或者控件以及控件的運(yùn)行程序邏輯設(shè)計(jì)為用戶控件,然后可以在多個(gè)網(wǎng)頁(yè)中重復(fù)使用該用戶控件,從而省去許多重復(fù)性的工作。〔2〕如果網(wǎng)頁(yè)內(nèi)容需要改變時(shí),只需修改用戶控件中的內(nèi)容,其他添加使用該用戶控件的網(wǎng)頁(yè)會(huì)自動(dòng)隨之改變,因此網(wǎng)頁(yè)的設(shè)計(jì)以及維護(hù)變得簡(jiǎn)單易行。9.2.2用戶控件與普通的Web頁(yè)比較用戶控件幾乎與.aspx文件相同,但是仍存在以下不同之處:〔1〕用戶控件的文件擴(kuò)展名為.ascx?!?〕用戶控件中沒有@Page指令,而是包含@Control指令,該指令對(duì)配置及其他屬性進(jìn)行定義?!?〕用戶控件不能作為獨(dú)立文件運(yùn)行,而必須像處理任何控件一樣,將它們添加到ASP.NET頁(yè)中?!?〕用戶控件中沒有html、body或form元素。9.2.3創(chuàng)立Web用戶控件創(chuàng)立普通用戶控件的步驟一般如下:〔1〕創(chuàng)立一個(gè)新文件并為其指定一個(gè)擴(kuò)展名為.ascx的文件名?!?〕在該頁(yè)面的頂部創(chuàng)立一個(gè)@Control指令,并指定要為控件〔如果有〕使用的編程語(yǔ)言?!?〕添加希望用戶控件顯示的控件。〔4〕添加用戶控件要執(zhí)行的任務(wù)〔如處理控件事件或從數(shù)據(jù)源讀取數(shù)據(jù)〕的代碼?!?〕如果希望在用戶控件和宿主頁(yè)之間共享信息,需要在控件中創(chuàng)立相應(yīng)的屬性。根據(jù)需要可以創(chuàng)立任何類的屬性。圖9.10“添加新項(xiàng)”對(duì)話框命名用戶控件選擇“web用戶控件”項(xiàng)9.2.4使用Web用戶控件如果已經(jīng)設(shè)計(jì)好了Web用戶控件,可以將其添加到一個(gè)或者多個(gè)網(wǎng)頁(yè)中。在同一個(gè)網(wǎng)頁(yè)中也可以重復(fù)使用屢次,各個(gè)用戶控件會(huì)以不同ID來(lái)標(biāo)識(shí)。將用戶控件添加到網(wǎng)頁(yè)可以使用“Web窗體設(shè)計(jì)器”直接添加用戶控件。圖9.11將Web用戶控件添加至網(wǎng)頁(yè)圖9.12用戶控件的屬性窗口9.2.5使用Web用戶控件制作網(wǎng)站導(dǎo)航圖9.13使用Web用戶控件制作導(dǎo)航條9.3用數(shù)據(jù)控件實(shí)現(xiàn)的簡(jiǎn)單報(bào)表 設(shè)計(jì)報(bào)表有多種方式,如將Excel的表格導(dǎo)入到程序中并翻開預(yù)覽,如使用第三方報(bào)表組件,還有可以使用ASP.NET2.0提供的數(shù)據(jù)控件,實(shí)現(xiàn)定制數(shù)據(jù)格式的數(shù)據(jù)展示功能。
9.3.1創(chuàng)立報(bào)表數(shù)據(jù) 報(bào)表主要是以特定格式顯示數(shù)據(jù)資料,為了讓讀者可以輕松地掌握本功能,本例的報(bào)表數(shù)據(jù)來(lái)源于一個(gè)數(shù)據(jù)表。
9.3.2創(chuàng)立報(bào)表視圖 報(bào)表數(shù)據(jù)已經(jīng)存在,現(xiàn)在介紹如何使用ASP.NET2.0提供的數(shù)據(jù)控件用特定的格式展示報(bào)表數(shù)據(jù)。
圖10-3“添加連接”對(duì)話框
圖10-4測(cè)試查詢
圖10-5Repeater報(bào)表運(yùn)行效果圖
9.3.3打印報(bào)表 因?yàn)閳?bào)表必須可以打印,本例還需要設(shè)計(jì)此報(bào)表的打印功能
圖10-6Repeater報(bào)表打印效果圖
圖10-7系統(tǒng)打印窗口9.4水晶報(bào)表的介紹
在程序開發(fā)中,經(jīng)常要對(duì)合并計(jì)算、多級(jí)匯總、制作圖表、條件格式化進(jìn)行編程。在這種情況下,用普通的數(shù)據(jù)控件往往一籌莫展。
而水晶報(bào)表大大簡(jiǎn)化了這些工作。用它可以制作非常漂亮的圖表和格式化文本,而且還可以把報(bào)表導(dǎo)出為Word、Excel、PDF、HTML等格式。
水晶報(bào)表英文名為“CrystalReport”,其主要功能是用來(lái)表現(xiàn)數(shù)據(jù)。要向用戶展示數(shù)據(jù),可以編寫代碼對(duì)記錄集進(jìn)行循環(huán)處理,并在Windows應(yīng)用程序或Web應(yīng)用程序中輸出這些數(shù)據(jù)。
圖10-9用戶許可協(xié)議對(duì)話框
圖10-10選擇報(bào)表模板
圖10-11空白報(bào)表界面
9.4.2創(chuàng)立報(bào)表的數(shù)據(jù)集 數(shù)據(jù)集是報(bào)表數(shù)據(jù)的來(lái)源,可在此設(shè)置條件或關(guān)聯(lián)多個(gè)表
圖10-12數(shù)據(jù)集提示
圖10-13數(shù)據(jù)集配置向?qū)?/p>
圖10-14選擇命令類型
圖
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年銷售經(jīng)理區(qū)域市場(chǎng)拓展聘用合同模板2篇
- 2025年項(xiàng)目工程中介協(xié)議書模板(含設(shè)計(jì)、施工、驗(yàn)收)3篇
- 2025年私人房產(chǎn)買賣合同文本與合同解除條件3篇
- 民政局2025版離婚協(xié)議書婚姻糾紛調(diào)解服務(wù)協(xié)議2篇
- 二零二五版美容院美容院連鎖加盟管理合同4篇
- 墻面裝飾板施工方案
- 窮人續(xù)寫200字6篇
- 2024年中級(jí)經(jīng)濟(jì)師考試題庫(kù)(典型題)
- 2025年消防系統(tǒng)智能化改造與安全評(píng)估合同協(xié)議3篇
- 2024年園區(qū)綠化管理制度
- 二零二五年度無(wú)人駕駛車輛測(cè)試合同免責(zé)協(xié)議書
- 北京市海淀區(qū)2024-2025學(xué)年高一上學(xué)期期末考試歷史試題(含答案)
- 常用口服藥品的正確使用方法
- 2025年湖北華中科技大學(xué)招聘實(shí)驗(yàn)技術(shù)人員52名歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年鉆探工程勞務(wù)協(xié)作協(xié)議樣式版B版
- 《心肺復(fù)蘇機(jī)救治院內(nèi)心搏驟停患者護(hù)理專家共識(shí)》解讀
- 計(jì)算機(jī)二級(jí)WPS考試試題
- 智聯(lián)招聘行測(cè)題庫(kù)及答案
- 前程無(wú)憂測(cè)評(píng)題庫(kù)及答案
- 2023中華護(hù)理學(xué)會(huì)團(tuán)體標(biāo)準(zhǔn)-注射相關(guān)感染預(yù)防與控制
- 超潔凈管道(CL-PVC)施工技術(shù)
評(píng)論
0/150
提交評(píng)論