ASP程序設(shè)計(jì)基礎(chǔ)_第1頁
ASP程序設(shè)計(jì)基礎(chǔ)_第2頁
ASP程序設(shè)計(jì)基礎(chǔ)_第3頁
ASP程序設(shè)計(jì)基礎(chǔ)_第4頁
ASP程序設(shè)計(jì)基礎(chǔ)_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第6章ASP.NET程序設(shè)計(jì)根底隨著Internet的開展,基于B/S結(jié)構(gòu)的信息系統(tǒng)日趨成為主流模式。ASP.NET是用于創(chuàng)立動(dòng)態(tài)Web頁面的效勞器端技術(shù),允許使用.NET框架支持的所有類庫,方便實(shí)現(xiàn)數(shù)據(jù)庫訪問,支持多種編程語言,是目前最流行的B/S結(jié)構(gòu)信息系統(tǒng)的主要開發(fā)技術(shù)之一。本書選用MicrosoftVisualStudio2005作為開發(fā)環(huán)境,C#為開發(fā)語言。本章主要介紹基于ASP.NET的Web應(yīng)用程序開發(fā)的根本方法。Microsoft.NET〔簡稱.NET框架〕是一個(gè)用于創(chuàng)立、部署和運(yùn)行基于Internet應(yīng)用程序的統(tǒng)一環(huán)境。.NET框架提供了托管程序執(zhí)行環(huán)境、簡化的開發(fā)和部署以及與各種編程語言的集成。.NET框架的體系結(jié)構(gòu),由一組內(nèi)部Windows組件構(gòu)成,其中最關(guān)鍵的是公共語言運(yùn)行庫和.NET框架類庫兩局部。

6.1.1Microsoft.NET框架6.1.NET框架與ASP.NET概述〔1〕公共語言運(yùn)行庫〔CommonLanguageRuntime〕CLR負(fù)責(zé)監(jiān)控程序的運(yùn)行和管理系統(tǒng)資源,提供內(nèi)存管理、線程管理和遠(yuǎn)程處理等核心效勞。但凡由符合公共語言標(biāo)準(zhǔn)的程序語言〔如包括C#、C++、VB、J#、Jscript等開發(fā)的程序都編譯為CLR能執(zhí)行的中間語言,由CLR來運(yùn)行。保證應(yīng)用程序與底層操作系統(tǒng)之間必要的別離。在CLR控制下執(zhí)行的代碼被稱作托管代碼,否那么稱為非托管代碼。使用托管代碼編寫的程序被稱為托管應(yīng)用程序,在運(yùn)行時(shí)需要在系統(tǒng)中安裝.NETFramework?!?〕.NET框架類庫.NETFramework類庫〔.NETFrameworkClassLibrary,F(xiàn)CL〕是一個(gè)與公共語言運(yùn)行庫緊密集成、綜合性的面向?qū)ο蟮目芍赜妙惖募?,為?yīng)用程序提供各種組件和效勞〔如根本類庫、ASP.NET、ADO.NET等〕,減少編程工作量,支持高效開發(fā)各種應(yīng)用程序。Web信息系統(tǒng)是瀏覽器/效勞器結(jié)構(gòu)〔即B/S結(jié)構(gòu)〕的分布式系統(tǒng)。它以Web網(wǎng)站形式提供效勞,其核心是Web效勞器。Web效勞器是網(wǎng)絡(luò)上運(yùn)行著Web效勞器程序〔例如MicrosoftInternetInformationServices〕的一臺(tái)主機(jī),用戶開發(fā)的Web應(yīng)用程序部署在其上,對于數(shù)據(jù)庫效勞器的訪問也由Web效勞器完成。用戶只需要使用瀏覽器訪問Web網(wǎng)站,就可以獲得信息系統(tǒng)效勞。6.1.2Web信息系統(tǒng)運(yùn)行原理靜態(tài)頁面是以HTML標(biāo)記語言描述的頁面文件,事先編寫好存儲(chǔ)在效勞器上,可以直接被客戶機(jī)上的瀏覽器解析顯示。1.Web頁面工作原理(1)靜態(tài)網(wǎng)頁提示:靜態(tài)網(wǎng)頁無法實(shí)現(xiàn)數(shù)據(jù)庫訪問。動(dòng)態(tài)頁面不僅包含HTML標(biāo)記,還包括可執(zhí)行的程序代碼,可用ASP.NET、JSP、PHP等工具開發(fā)。頁面程序〔例如數(shù)據(jù)庫訪問、運(yùn)算處理等〕執(zhí)行并將集成結(jié)果生成一個(gè)HTML文件返回給瀏覽器。因該HTML文件不是事先在效勞器上存儲(chǔ)的,而是根據(jù)訪問請求動(dòng)態(tài)生成的,所以稱動(dòng)態(tài)網(wǎng)頁。

(2)動(dòng)態(tài)網(wǎng)頁(2)軟件環(huán)境Web效勞器①操作系統(tǒng)②.NET框架③Web效勞程序〔IIS〕④MDAC組件〔數(shù)據(jù)庫訪問組件〕數(shù)據(jù)庫效勞器〔SQLServer〕客戶機(jī):操作系統(tǒng)、瀏覽器2.Web信息系統(tǒng)開發(fā)和部署環(huán)境(1)硬件環(huán)境Internet/Intranet網(wǎng)絡(luò)效勞器1~2臺(tái)客戶機(jī)。在開發(fā)階段,Web效勞器、數(shù)據(jù)庫效勞器和客戶機(jī)物理上可以是一臺(tái)計(jì)算機(jī),但在系統(tǒng)部署時(shí),從平安性和易維護(hù)的角度考慮,Web效勞器和數(shù)據(jù)庫效勞器最好采用獨(dú)立的計(jì)算機(jī)。6.1.3ASP.NET概述ASP.NET是.NET框架的組件之一,以一個(gè)統(tǒng)一的Web開發(fā)模型,提供了生成Web應(yīng)用程序所必需的各種效勞。VisualStudio平臺(tái)支持ASP.NET程序開發(fā),功能包括:可視化的Web頁面設(shè)計(jì)源代碼編輯、編譯、調(diào)試數(shù)據(jù)庫訪問功能網(wǎng)站應(yīng)用程序的部署與發(fā)布創(chuàng)立一個(gè)Web應(yīng)用程序1.ASP.NETWeb應(yīng)用程序結(jié)構(gòu)基于ASP.NET創(chuàng)立的Web網(wǎng)站由一組存放在一個(gè)目錄下的Web網(wǎng)頁及相關(guān)配置文件組成。包含頁面文件、控件文件、代碼模塊和效勞,以及配置文件和各種資源。這個(gè)目錄稱為Web根目錄,在其下可建立各類子目錄,存放不同類別的文件?!纠?.1】創(chuàng)立本地文件系統(tǒng)ASP.NET網(wǎng)站C:\WebSite1,輸入姓名后按“確定”按鈕,顯示歡送信息“WelcometoASP.NET!”。2.創(chuàng)立本地文件系統(tǒng)ASP.NETWeb站點(diǎn)①運(yùn)行MicrosoftVisualStudio2005應(yīng)用程序。②新建ASP.NETWeb網(wǎng)站。通過“文件/新建網(wǎng)站”菜單,翻開“新建網(wǎng)站”對話框;模板選擇“ASP.NET網(wǎng)站”、語言選擇“VisualC#”、位置為“文件系統(tǒng)”、路徑為“C:\WebSite1”,單擊“確定”按鈕,系統(tǒng)將在C:\WebSite1下創(chuàng)立假設(shè)干文件夾和文件。在解決方案資源管理器中可看到工程文件結(jié)構(gòu),在計(jì)算機(jī)的C盤上也可以看到。③新建ASP.NET頁面“HelloWorld.aspx”。在“解決方案資源管理器”中,右擊網(wǎng)站“C:\WebSite1”,選擇“添加新項(xiàng)”菜單翻開“添加新項(xiàng)”對話框;模板選擇“Web窗體”;名稱修改為“HelloWorld.aspx”,不勾選“將代碼放在單獨(dú)的文件中”。單擊“添加”按鈕,添加窗體頁“HelloWorld.aspx到ASP.NETWeb站點(diǎn)“C:\WebSite1”。④設(shè)計(jì)HelloWorld.aspx頁面。在“設(shè)計(jì)”視圖中,根據(jù)網(wǎng)頁布局,從工具箱中拖放控件到設(shè)計(jì)窗口中,并在屬性窗口對各個(gè)控件的屬性設(shè)置。Label2.Text為“請輸入你的姓名:”,Label1.Text為空,TextBox1.Text為空,Button1.Text為“確定”。生成按鈕事件。在“設(shè)計(jì)”視圖中,雙擊“確定”按鈕,設(shè)計(jì)頁面切換到“源”視圖,并自動(dòng)生成“確定”按鈕的主事件Click的處理過程“Button1_Click”框架。⑥為Button1按鈕Click事件處理過程參加處理代碼。在“源”視圖中,在“Button1_Click”的ASP.NET事件函數(shù)的框架中參加如下語句。protectedvoidButton1_Click(objectsender,EventArgse){Label1.Text=TextBox1.Text+",WelcometoASP.NET!";}⑦按“保存”或“全部保存”按鈕可保存該頁面。⑧選擇“調(diào)試/啟動(dòng)調(diào)試”菜單〔F5〕運(yùn)行HelloWorld.aspx。⑨VisualStudio編譯調(diào)試工程后,會(huì)自動(dòng)翻開IE瀏覽器。輸入“王紅”,按確定可觀察程序運(yùn)行結(jié)果。⑩關(guān)閉“瀏覽器”或選擇“調(diào)試/停止調(diào)試”菜單結(jié)束網(wǎng)站運(yùn)行,返回VisualStudio。VisualStudio內(nèi)置了Web效勞器ASP.NETDevelopmentServer,不需要IIS就可以運(yùn)行網(wǎng)站查看效果,方便開發(fā)和調(diào)試ASP.NETWeb應(yīng)用程序。創(chuàng)立的本地文件系統(tǒng)ASP.NETWeb應(yīng)用程序保存在本地文件系統(tǒng)的一個(gè)目錄中,當(dāng)調(diào)試運(yùn)行程序時(shí),內(nèi)置的Web效勞器自動(dòng)創(chuàng)立基于該目錄的Web應(yīng)用程序。第一次使用內(nèi)置Web效勞器運(yùn)行程序時(shí),會(huì)出現(xiàn)“未啟用調(diào)試”對話框,采用默認(rèn)設(shè)置〔“添加新的啟用了調(diào)試的Web.config文件”〕即可。Web應(yīng)用程序發(fā)布方式有以下幾種:1.配置IIS,重設(shè)IIS主目錄發(fā)布。2.創(chuàng)立虛擬目錄發(fā)布3.直接將Web網(wǎng)站程序發(fā)布到IIS的主目錄?!?〕將Web應(yīng)用程序復(fù)制到主目錄后配置發(fā)布〔2〕使用VisualStudio創(chuàng)立ASP.NETWeb應(yīng)用程序時(shí)發(fā)布〔3〕使用VisualStudio編譯后發(fā)布發(fā)布Web應(yīng)用程序使用內(nèi)置的Web效勞器僅能調(diào)試頁面。如果要讓其他遠(yuǎn)程用戶也能訪問該網(wǎng)站,需要使用IIS將調(diào)試好的Web應(yīng)用程序發(fā)布出去。1.配置IIS,重設(shè)IIS主目錄發(fā)布?!纠?.2】配置IIS,發(fā)布“例6.1”創(chuàng)立的網(wǎng)站。①使用“控制面板/管理工具/Internet信息效勞”翻開“Internet信息效勞”。②右擊“默認(rèn)網(wǎng)站”,選“屬性”菜單翻開“默認(rèn)網(wǎng)站屬性”對話框。選擇“主目錄”選項(xiàng)卡,單擊本地路徑后的“瀏覽”按鈕,選擇要發(fā)布的網(wǎng)站程序文件夾,本例為“C:\WebSite1”。③選擇“文檔”選項(xiàng)卡,點(diǎn)擊“添加”按鈕,將“HelloWorld.aspx”文件添加到“啟用默認(rèn)文檔列表”中,按“確定”按鈕關(guān)閉窗口發(fā)布完成。④在本機(jī)使用“://localhost”、“://”可以訪問該站點(diǎn),在網(wǎng)絡(luò)的其他計(jì)算機(jī)上使用“://效勞器域名”、“地址”可以訪問該站點(diǎn)。IIS效勞器默認(rèn)以“C:\Inetpub\wwwroot”作為網(wǎng)站的根目錄,所以也稱其為Web應(yīng)用程序的主目錄,存放在其下的Web網(wǎng)站程序可以使用URL為“://效勞器域名”、“地址”直接訪問。2.創(chuàng)立虛擬目錄發(fā)布由于一個(gè)Web效勞器上可能發(fā)布多個(gè)Web網(wǎng)站,為了能區(qū)分不同網(wǎng)站,除了主目錄外,IIS采用虛擬目錄來管理Web網(wǎng)站,即把網(wǎng)站程序存放在一個(gè)文件夾,然后通過配置IIS以虛擬目錄名發(fā)布,使每個(gè)Web網(wǎng)站有自己的應(yīng)用程序域。虛擬目錄又稱為“別名”,以Web效勞器作為根目錄。例如:某網(wǎng)站程序所在的文件夾為“C:\Myweb”,在IIS中的“默認(rèn)網(wǎng)站”下建立名為“BookShop”的虛擬目錄,設(shè)置其本地路徑為“C:\Myweb”,那么訪問該網(wǎng)站的方式為“://效勞器域名/BookShop、“地址/BookShop”?!纠?.3】創(chuàng)立虛擬目錄發(fā)布“例6.1”創(chuàng)立的網(wǎng)站。①在“Internet信息效勞”窗口右擊“默認(rèn)網(wǎng)站”,選擇“新建虛擬目錄”菜單,按“下一步”按鈕依次完成各對話框設(shè)置,輸入別名,如WebSite2,瀏覽設(shè)置Web網(wǎng)站目錄“C:\WebSite1”,其他頁采用默認(rèn)設(shè)置,直到完成創(chuàng)立。②訪問該站點(diǎn),在本機(jī)可用“://localhost/WebSite2”、;在網(wǎng)絡(luò)上使用“://效勞器域名/WebSite2”、“地址/WebSite2”。3.直接將Web網(wǎng)站程序發(fā)布到IIS的主目錄〔1〕將Web應(yīng)用程序復(fù)制到主目錄后配置發(fā)布在“我的電腦”中使用復(fù)制命令將“C:\WebSite1”下的所有文件和子文件夾復(fù)制到IIS的默認(rèn)主目錄下;或者使用VisualStudio的“網(wǎng)站/復(fù)制網(wǎng)站”菜單將當(dāng)前Web網(wǎng)站所有文件和文件夾復(fù)制到指定的Web效勞器〔本地、遠(yuǎn)程HTTP、遠(yuǎn)程FTP〕來發(fā)布。注意移除原來的文件。如果IIS“啟用默認(rèn)文檔列表”中不包括啟動(dòng)頁面,需要在默認(rèn)網(wǎng)站的文檔中添加該文件。〔2〕使用VisualStudio創(chuàng)立程序時(shí)直接發(fā)布新建ASP.NETWeb網(wǎng)站時(shí),在

“新建網(wǎng)站”對話框位置處選擇“瀏覽”按鈕可彈出擇位置對話框。①文件系統(tǒng):文件存儲(chǔ)在本地,使用內(nèi)置Web效勞器可調(diào)試網(wǎng)站,但不發(fā)布。一般用于開發(fā)和調(diào)試程序。②本地IIS:文件存儲(chǔ)在本地IIS主目錄文件夾中,不需設(shè)置可直接發(fā)布。一般用于開發(fā)和維護(hù)運(yùn)行在本地IIS的Web網(wǎng)站。③FTP站點(diǎn):文件存儲(chǔ)在遠(yuǎn)程FTP效勞器上,通過Internet訪問該效勞器,不需任何設(shè)置可直接發(fā)布。一般用于開發(fā)和維護(hù)運(yùn)行在遠(yuǎn)程效勞器的Web網(wǎng)站。④遠(yuǎn)程站點(diǎn)〔IIS〕:文件存儲(chǔ)在跨越本地網(wǎng)絡(luò)訪問的遠(yuǎn)程效勞器上,不需任何設(shè)置就可直接發(fā)布。一般用于開發(fā)和維護(hù)運(yùn)行在遠(yuǎn)程IIS的Web網(wǎng)站?!?〕使用VisualStudio編譯后發(fā)布使用“生成/發(fā)布網(wǎng)站”菜單可以將當(dāng)前Web應(yīng)用程序進(jìn)行編譯生成動(dòng)態(tài)鏈接庫〔.dll〕,存放到本地或遠(yuǎn)程效勞器的Bin文件夾,也可以將編譯后的程序直接發(fā)布到指定的效勞器。編譯后的網(wǎng)站程序文件小、運(yùn)行速度快,而且不能被其他人修改,比較平安。超文本標(biāo)記語言HTML簡介1.HTML簡介HTML〔HypertextMarkupLanguage,超文本標(biāo)記語言〕是一種用于描述網(wǎng)頁文檔的標(biāo)記語言。在WWW上的一個(gè)超媒體文檔稱之為一個(gè)頁面〔網(wǎng)頁〕,對應(yīng)于HTML文件,以.htm或.html為擴(kuò)展名。HTML是Web編程的根底。使用集成開發(fā)工具構(gòu)建Web站點(diǎn)時(shí),會(huì)自動(dòng)生成相應(yīng)的HTML代碼,一般不需手工編寫,但開發(fā)者應(yīng)該至少能夠讀懂這些HTML代碼。①運(yùn)行VisualStudio應(yīng)用程序,新建或翻開ASP.NETWeb網(wǎng)站:C:\WebSite4。②新建HTML頁HTMLPage.htm。在“解決方案資源管理器”中,右擊網(wǎng)站“C:\WebSite4”,選擇“添加新項(xiàng)”,在“添加新項(xiàng)”對話框模板中選擇“HTML頁”;單擊“添加”按鈕,添加“HTMLPage.htm”?!纠?.4】創(chuàng)立并編輯HTML頁HTMLPage.htm,運(yùn)行時(shí)在頁面顯示“Hello,World!”。2.創(chuàng)立簡單的HTML文檔HTML文件是純文本文件,可以直接使用文本編輯器〔如記事本〕編寫。但一般使用專業(yè)的Web創(chuàng)作工具〔如Dreamweaver〕,或者使用集成開發(fā)環(huán)境〔如VisualStudio〕中內(nèi)置的HTML編輯器來編輯。③在“設(shè)計(jì)”視圖中,在頁面上鍵入“Hello,World!”,切換到在“源”視圖,觀看自動(dòng)生成的HTML代碼,并將<head>局部用“HTML實(shí)驗(yàn)”替換“無標(biāo)題頁”。④運(yùn)行程序,看到頁面標(biāo)題顯示“HTML實(shí)驗(yàn)”,頁內(nèi)顯示“Hello,World!”

。3.HTML文檔的根本結(jié)構(gòu)<!DOCTYPE>聲明位于文檔中最前面的位置,處于<html>標(biāo)簽之前。此標(biāo)簽可告知瀏覽器文檔使用哪種HTML或XHTML標(biāo)準(zhǔn)??梢允÷浴?lt;HTML></HTML>在文檔的最外層,文檔中的所有文本和html標(biāo)簽都包含在其中,它表示該文檔是以超文本標(biāo)識(shí)語言〔HTML〕編寫的。<HTML></HTML>之間包含HTML文檔的2個(gè)主要局部:head局部和body局部。<head></head>之間的局部為head局部,包括文檔的頭部信息,如文檔總標(biāo)題〔<title>〕以及元信息〔<meta>〕等,假設(shè)不需頭部信息那么可省略此標(biāo)記。<body></body>之間的局部為body局部,包含正文內(nèi)容,是在瀏覽器要顯示的頁面內(nèi)容。表示正文內(nèi)容的開始。HTML標(biāo)簽的典型格式如下:<標(biāo)簽名字屬性1=屬性1值屬性2=屬性2值…>內(nèi)容</標(biāo)簽名字>4.HTML標(biāo)記及其屬性概述HTML標(biāo)簽一般不區(qū)分大小寫;HTML標(biāo)簽屬性是可選的,先后位置可任意排列,用空格分隔。屬性值一般不用加英文雙引號(hào),但包含特殊字符〔例如空格、%號(hào),#號(hào)〕的屬性值必須參加雙引號(hào)。HTML文檔由標(biāo)簽和文本構(gòu)成,標(biāo)簽用來告訴瀏覽器如何呈現(xiàn)內(nèi)容。例:<title>Hello</title>使標(biāo)題欄顯示“Hello”。例:設(shè)置網(wǎng)頁背景顏色〔"#ffccff"為水粉色〕。<bodybgcolor="#ffccff"></body>16進(jìn)制色的前面兩位表示Red、中間兩位表示Green、后面兩位表示Blue。6.2Web窗體與常用效勞器控件控件是Web窗體上的界面對象。它們使Web應(yīng)用程序開發(fā)非常便捷。包括HTML效勞器控件和Web效勞器控件。HTML效勞器控件的事件處理在客戶端的頁面上,而Web效勞器控件那么是在效勞器上,能夠展現(xiàn)更高級的功能,方便業(yè)務(wù)處理編程。Web窗體是基于ASP.NET的可擴(kuò)展編程模型,支持快速生成Web應(yīng)用程序。它可以使用.NET提供的各種控件來為Web應(yīng)用程序構(gòu)建用戶界面、使用支持.NET的語言〔VisualBasic.NET、C#.NET等〕編寫代碼來提供交互功能、調(diào)用業(yè)務(wù)對象和執(zhí)行其他任務(wù),并且可以實(shí)現(xiàn)頁面內(nèi)容與代碼的完全別離。6.2.1Web窗體Web窗體由兩局部構(gòu)成:用戶界面與應(yīng)用程序?qū)崿F(xiàn)邏輯。用戶界面:負(fù)責(zé)對瀏覽器上Web窗體進(jìn)行表示。由靜態(tài)文本和效勞器控件〔也可以包括HTML控件、HTML效勞器控件以及用戶自定義的控件〕組成。實(shí)現(xiàn)邏輯:對Web窗體進(jìn)行邏輯處理的ASP.NET代碼,負(fù)責(zé)生成頁面上動(dòng)態(tài)顯示的內(nèi)容,實(shí)際上是一個(gè)用于封裝用戶數(shù)據(jù)及其操作方法的Page類。VisualStudio2005為Web應(yīng)用程序中的每個(gè)Web窗體提供了三個(gè)不同的視圖:①設(shè)計(jì)視圖。用于用戶界面設(shè)計(jì),對應(yīng)于.aspx頁面文件。②源視圖。用于可視化組件設(shè)計(jì),對應(yīng)于.aspx頁面文件。③邏輯代碼視圖。用于實(shí)現(xiàn)邏輯代碼設(shè)計(jì),每個(gè)Web窗體都可有一個(gè)對應(yīng)的邏輯代碼文件,其文件名稱是在對應(yīng)的ASP.NET頁面文件名稱后再加后綴名〔C#語言源文件加“.cs”,VB語言源文件加“.vb”〕。1.Web窗體的組成2.代碼內(nèi)聯(lián)與后臺(tái)編碼后臺(tái)編碼方式:ASP.NET通過建立邏輯代碼文件,將用戶界面與實(shí)現(xiàn)邏輯代碼別離,使界面設(shè)計(jì)工作由專業(yè)設(shè)計(jì)人員完成,而實(shí)現(xiàn)邏輯由程序設(shè)計(jì)人員完成。代碼內(nèi)聯(lián)方式:不建立單獨(dú)的邏輯代碼文件,而是和HTML代碼存放在同一個(gè)文件中,即只有.aspx文件,而沒有.cs文件。3.事件驅(qū)動(dòng)編程Web窗體基于事件驅(qū)動(dòng)編程,事件的發(fā)生〔例如點(diǎn)擊按鈕、按下鍵盤、移動(dòng)鼠標(biāo)、窗體加載等〕都產(chǎn)生事件??梢杂|發(fā)相關(guān)程序的執(zhí)行,稱為事件處理程序。新建ASP.NET頁面時(shí),不選中“將代碼放在單獨(dú)的文件中”使用的是代碼內(nèi)聯(lián)方式;選中那么使用后臺(tái)編碼方式。4.Web窗體常用事件窗體上的界面對象都可以響應(yīng)相關(guān)的事件,各控件能響應(yīng)的事件略有不同。當(dāng)瀏覽器第一次請求一個(gè)頁面時(shí),相應(yīng)的Web窗體被編譯為一個(gè)Page類并實(shí)例化。下面介紹Page類的兩個(gè)事件。①Page_Load事件所有窗體都包含Page_Load事件,該事件在內(nèi)存加載頁面時(shí)自動(dòng)發(fā)生,可利用事件處理代碼來初始化控件屬性、建立數(shù)據(jù)綁定或者創(chuàng)立數(shù)據(jù)庫的連接對象等。②Page_UnLoad事件和Page_Load事件相對應(yīng),從內(nèi)存中卸載頁面時(shí)發(fā)生,該事件框架中通常編寫去除內(nèi)存變量、數(shù)組、對象以及關(guān)閉數(shù)據(jù)庫連接等代碼?!纠?.5】采用后臺(tái)編碼方式實(shí)現(xiàn)例6.1,觀察實(shí)現(xiàn)過程和Web窗體各視圖中的內(nèi)容。

①新建ASP.NET頁面“HelloWorld.aspx”時(shí),勾選“將代碼放在單獨(dú)的文件中”,以便創(chuàng)立后臺(tái)編碼程序,在程序窗格可以看到兩個(gè)文件“HelloWorld.aspx”和“”。②在設(shè)計(jì)視圖中,設(shè)計(jì)Web窗體界面。包括直接書寫在窗體上的靜態(tài)文本以及文本框Textbox、標(biāo)簽Label和按鈕Button控件組成,通過屬性窗口設(shè)置各控件的視覺效果。③切換到源視圖,查看“HelloWorld.aspx”文件,可以看到HTML代碼,修改HTML代碼,可以改變界面布局或效果,

說明:〔1〕CodeFile=“”語句說明其編譯時(shí)需要連接的邏輯代碼文件。〔2〕<asp:ButtonID=“Button1”runat=“server”Text=“Button”O(jiān)nClick=“Button1_Click”/>語句將Button1的過程Button1_Click和OnClick事件進(jìn)行了綁定?!?〕runat屬性:假設(shè)屬性值為server,那么指明代碼在效勞器端運(yùn)行,否那么在客戶端運(yùn)行。protectedvoidPage_Load(objectsender,EventArgse){Label1.Text="HelloASP.Net";}protected

voidButton1_Click(objectsender,EventArgse){//修改Label1顯示內(nèi)容Label1.Text=TextBox1.Text+",WelcometoASP.NET!";}//頁面加載時(shí),給Label1賦初始顯示內(nèi)容//點(diǎn)擊Button1,修改Label1顯示內(nèi)容④在“設(shè)計(jì)”視圖中,雙擊“確定”按鈕換到邏輯代碼視圖,并在“”中自動(dòng)生成“確定”按鈕的主事件Click的處理過程“Button1_Click”框架,可編輯實(shí)現(xiàn)應(yīng)用程序業(yè)務(wù)邏輯的代碼。

控件的事件框架可以通過以下方法創(chuàng)立:在設(shè)計(jì)視圖中,雙擊要?jiǎng)?chuàng)立事件過程的效勞器控件在設(shè)計(jì)視圖中,選中某一效勞器控件,然后在屬性窗口單擊事件圖標(biāo)〔〕會(huì)翻開該控件的可用事件列表。雙擊需要的事件;在源視圖中,左上角的下拉列表框可以選擇頁面或控件,選好后點(diǎn)擊右上角的下拉列表框可選擇需要的事件。通過屬性窗口建立事件處理框架通過源視圖建立事件處理框架〔1〕屬性屬性是用來描述對象特征的參數(shù)。對象的屬性可以通過兩種方法來設(shè)置:①在設(shè)計(jì)視圖的屬性窗口直接設(shè)置對象的屬性值。②在程序運(yùn)行階段,通過賦值語句來設(shè)置對象屬性,格式為:對象名.屬性名=屬性值例如:在程序運(yùn)行中改變Label1顯示的內(nèi)容:Label1.Text=“HelloASP.Net!“效勞器控件概述控件是Web窗體上的對象,每類對象都具有屬性、方法和事件三個(gè)要素。1.控件對象簡介〔2〕方法對象的方法可看成是對象所能進(jìn)行的操作。方法對應(yīng)一個(gè)過程或函數(shù),可在程序中被調(diào)用,以完成某種功能,其格式為:對象名.方法([參數(shù)表])例如:使TextBox1獲得焦點(diǎn):TextBox1.Focus()〔3〕事件事件是發(fā)生在對象上的一件事情。程序中需要有一段代碼來處理這個(gè)事件,這段代碼稱為事件過程。事件過程的框架格式如下:protectedvoid對象名_事件(觸發(fā)事件的對象,事件相關(guān)參數(shù)){//事件過程代碼}2.Web效勞器控件ASP.NET開發(fā)Web應(yīng)用程序可以使用一組強(qiáng)大的控件,包括HTML效勞器控件和Web效勞器控件〔也稱ASP.NET效勞器控件〕。HTML效勞器控件的事件處理在客戶端的頁面上,Web效勞器控件的事件處理在效勞器上,能夠展現(xiàn)更高級的功能,方便業(yè)務(wù)處理編程。

使用Web效勞器控件構(gòu)建ASP.NET頁面有兩種方式:①在設(shè)計(jì)視圖中將工具箱中的控件拖放到頁面上,左上角的綠色三角形“”表示該控件是效勞器控件。添加到窗體上的每個(gè)控件都會(huì)生成相應(yīng)的HTML語句,一般格式如下:<asp:控件類型ID="控件名稱"runat="server"控件其他屬性/>或<asp:控件類型ID="控件名稱"runat="server"控件其他屬性/></asp:控件類型>其中:asp代表命名空間,所有Web效勞器控件的命名空間都是asp;ID是控件的唯一標(biāo)識(shí),系統(tǒng)按序號(hào)自動(dòng)為窗體上的同類控件編號(hào),用戶也可重新命名;runat=“server”說明是一個(gè)效勞器控件。②另外一種方式是在源視圖中直接編輯代碼來設(shè)置和使用Web效勞器控件。3.常用Web效勞器控件的共有屬性<asp:LabelID="Label1"runat="server"Text="Hello,World!"></asp:Label>標(biāo)準(zhǔn)控件1.Label控件在頁面上顯示文本。Text屬性指定顯示內(nèi)容。Text可省略,顯示內(nèi)容放<asp:Label></asp:Label>間:<asp:LabelID="Label1"runat="server">Hello,World!</asp:Label>在事件過程中修改控件的顯示內(nèi)容的語句為:Label1.Text="Hello,World!"Text:用于讀取或者設(shè)置文本框的文本值。TextMode:有三種取值:默認(rèn)為SingleLine〔單行文本框〕、Password〔密碼框〕、MultiLine〔多行文本框〕。密碼文本框?qū)⒂脩糨斎氲奈谋疽孕翘?hào)〔*〕表示。Maxlength:允許輸入的最多字符數(shù)。0為輸入字符個(gè)數(shù)不限。Wrap:取值為True或False〔默認(rèn)〕,多行文本是否自動(dòng)換行。AutoPostBack,取值為True或False〔默認(rèn)〕,當(dāng)用戶按回車鍵或Tab鍵離開文本框時(shí),是否自動(dòng)觸發(fā)TextChanged事件。2.TextBox控件用于顯示數(shù)據(jù)或接收用戶輸入數(shù)據(jù)?!?〕TextBox的常用屬性例如:TextBox用作密碼框,實(shí)現(xiàn)的代碼如下:<asp:TextBoxID="TextBox2"runat="server"TextMode="Password"></asp:TextBox>Focus()方法:Focus()將用戶端的焦點(diǎn)置于TextBox控件上面。例如:頁面顯示時(shí)將光標(biāo)置于TextBox1控件上。protectedvoidPage_Load(objectsender,EventArgse){

TextBox1.Focus();}〔2〕TextBox的常用方法TextChanged事件:當(dāng)客戶端的焦點(diǎn)離開文本框后,TextBox的內(nèi)容傳到效勞器,效勞器經(jīng)過比對發(fā)現(xiàn)輸入的內(nèi)容和上次不同之后,該事件發(fā)生。〔3〕TextBox的常用事件提示:設(shè)置AutoPostBack為True,并在TextChanged事件過程中編寫代碼,在文本框內(nèi)容改變時(shí)立即觸發(fā)事件執(zhí)行代碼。3.Button控件、LinkButton和ImageButtonButton:最常用的Web控件,一般用來提交表單。<asp:ButtonID="控件名稱"runat="server"Text="按鈕標(biāo)題"OnClick="控件名稱_事件"/>〔1〕Button的常用屬性為Text,表示按鈕顯示的標(biāo)題?!?〕Button的常用事件為Button_Click,用戶單擊按鈕時(shí)發(fā)生。LinkButton:是Button的一種變體,與Button控件功能相同,只是采用超鏈接形式。如果Web窗體上有較多按鈕,可以使用LinkButton。

添加圖片在屬性窗口設(shè)置ImageUrl屬性設(shè)置ImageUrl屬性的方法:將要顯示的圖片通過“添加現(xiàn)有項(xiàng)”添加到應(yīng)用程序中,隨后在屬性窗口中設(shè)置ImageUrl為該圖片文件,為“~/文件名”〔“~”表示當(dāng)前目錄〕,也可在程序運(yùn)行時(shí)指定。ImageButton:是Button的一種變體,外觀采用圖片。ImageUrl屬性:指明圖像文件的路徑和文件名,圖像可以是jpg、bmp、gif等格式?!纠?.6】使用Textbox、Label、Button實(shí)現(xiàn)密碼驗(yàn)證程序。圖〔a〕為運(yùn)行初始窗口,焦點(diǎn)在姓名文本框處;圖〔b〕為輸入“Tom”、密碼為“8888”,按“確定”按鈕在窗體標(biāo)簽上顯示“歡送Tom使用教務(wù)系統(tǒng)”;按“清空”超鏈接按鈕那么姓名和密碼清空;按圖像按鈕“”那么在窗體下部顯示〔或隱藏〕多行只讀文本框來查看或隱藏幫助信息?!?〕新建一個(gè)頁面Login.aspx,窗體上的控件及布局如以下圖。各控件及其屬性初始值〔未說明的取默認(rèn)值〕protectedvoidButtonOK_Click(objectsender,EventArgse){if(TextBoxPassword.Text==“8888”)//判斷密碼是否為“8888”{Label3.Text="歡送"+TextBoxName.Text+"使用教務(wù)系統(tǒng)!";//密碼正確,顯示歡送信息}else{Label3.Text=“用戶名或密碼錯(cuò)誤!”;//密碼錯(cuò)誤,顯示出錯(cuò)信息}}〔2〕中的相關(guān)事件處理程序protectedvoidPage_Load(objectsender,EventArgse){TextBoxHelp.Text="請輸入您的姓名和密碼,注意密碼只能由數(shù)字構(gòu)成";TextBoxName.Focus();//TextBoxName文本框獲得輸入焦點(diǎn)}①頁面加載時(shí),TextBoxName文本框獲得輸入焦點(diǎn)。②輸入姓名和密碼,按下ButtonOK按鈕驗(yàn)證密碼,并報(bào)告結(jié)果。protectedvoidImageButtonHelp_Click(objectsender,ImageClickEventArgse){//設(shè)置Visible屬性為True或FalseTextBoxHelp.Visible=!TextBoxHelp.Visible;}

protectedvoidLinkButtonClear_Click(objectsender,EventArgse){TextBoxName.Text="";//清空TextBoxNameTextBoxPassword.Text="";//清空TextBoxPasswordLabel3.text="";}③按下LinkButtonClear按鈕清空TextBoxName和TextBoxPassword。④按下ImageButtonHelp顯示或隱藏幫助文本框TextBoxHelp。Image用于在頁面上顯示圖片。主要屬性ImageUrl,作用和用法與ImageButton的ImageUrl屬性相同。4.Image、ImageMapImageMap控件用來在頁面上顯示圖像,也可以實(shí)現(xiàn)圖像的超鏈接形成導(dǎo)航菜單??梢詫D像按照坐標(biāo)〔X,Y〕劃分不同的形狀熱點(diǎn)區(qū)域,分別進(jìn)行相應(yīng)的操作,可以是導(dǎo)航到其他頁面或者將指定的值回傳給效勞器。Image、ImageMap的常用屬性:ImageUrl:設(shè)圖像路徑及文件名,可以產(chǎn)生一個(gè)圖形超鏈接。HotSpot:設(shè)置超鏈接區(qū)域。5.HyperLink超鏈接控件HyperLink用于在網(wǎng)頁中設(shè)置文本或圖像超鏈接。常用屬性:NavigateUrl:要翻開頁面的URL。Target:可以在設(shè)有框架的網(wǎng)頁上,決定此鏈接要開啟哪個(gè)框架或者另外可以翻開的窗體。設(shè)置Target=”_blank”時(shí)表示開啟一個(gè)新窗體。ImageUrl:設(shè)置要顯示的圖像路徑及文件名,可以產(chǎn)生一個(gè)圖形超鏈接。Panel控件和PlaceHolder控件都可以作為其他控件的容器??梢园岩唤M控件放在其中,便于整體布局和控制整體的隱藏或顯示。常用屬性為Visible。也可以用編程方式通過Controls集合的Add、Remove等方法動(dòng)態(tài)添加或移除容器內(nèi)的控件。6.Panel、PlaceHolder單項(xiàng)選擇按鈕控件RadioButton用于在多個(gè)選項(xiàng)之中只能選擇其中一項(xiàng)的情況,一般是成組使用。CheckedChanged:單項(xiàng)選擇鈕選中項(xiàng)發(fā)生變化時(shí)發(fā)生。Click:單擊按鈕時(shí)發(fā)生。7.RadioButton、RadioButtonList〔1〕常用屬性〔2〕RadioButton的常用事件RadioButtonList控件的作用和RadioButton控件相同,如果組中RadioButton控件數(shù)量比較多或者其值可以通過現(xiàn)有的數(shù)據(jù)庫中的值表示,用RadioButtonList控件可以簡化頁面設(shè)計(jì)和程序代碼,但界面設(shè)計(jì)不靈活。屬于同一組的RadioButton可以以任何方式排列,而RadioButtonList只能選擇水平或者垂直的方式進(jìn)行排列。復(fù)選框控件CheckBox允許用戶在多個(gè)選項(xiàng)中選一項(xiàng)或多項(xiàng)。CheckBox的屬性設(shè)置和RadioButton類似。CheckBoxList可設(shè)置一組復(fù)選框。8.CheckBox、CheckBoxList下拉列表框控件DropDownList和列表框ListBox用于創(chuàng)立一個(gè)列表,允許用戶從中選擇需要的項(xiàng)。二者的區(qū)別是DropDownList在點(diǎn)擊后才顯示列表,且只允許從中選取一項(xiàng),適用于空間有限的時(shí)候。ListBox允許用戶選擇其中的一項(xiàng)或者多項(xiàng)。9.DropDownList

、ListBoxDropDownList、ListBox常用屬性10.FileUpLoad文件上傳控件FileUpLoad顯示一個(gè)文本框控件和一個(gè)瀏覽按鈕,可以實(shí)現(xiàn)瀏覽和選定磁盤文件、上傳文件到效勞器指定位置的功能?!?〕常用的屬性HasFile:說明是否已經(jīng)選定文件,True表示已選定。FileName:要上傳文件的文件名,不包括路徑?!?〕常用的方法SaveAs(stringfilepath):上傳文件保存到效勞器指定位置filepath?!纠?.7】綜合以上各類控件的應(yīng)用,實(shí)現(xiàn)如學(xué)生信息維護(hù)程序。

〔a〕運(yùn)行初始頁面〔b〕按“確定”按鈕后頁面〔c〕頁面中的控件說明〔1〕新建一個(gè)網(wǎng)頁,設(shè)計(jì)網(wǎng)頁上的控件〔如圖c〕??梢韵确胖?個(gè)Panel,然后在Panel1上插入表,在各行插入相關(guān)控件并進(jìn)行初始設(shè)置;在Panel2上添加有關(guān)控件?!?〕為各個(gè)按鈕添加事件代碼。protectedvoidPage_Load(objectsender,EventArgse){Panel2.Visible=false;//不顯示Panel2

}①頁面加載時(shí),Panel2隱藏。protectedvoidButtonUpLoad_Click(objectsender,EventArgse){stringfilename,serverfilepath;if(FileUpload1.HasFile)//如果已選擇上傳文件{//獲取客戶端要上傳文件的文件名filename=FileUpload1.FileName;//設(shè)置效勞器端保存上傳文件的物理路徑為當(dāng)前目錄,文件名相同serverfilepath=Server.MapPath(".")+"\\"+filename;//上傳文件按指定物理路徑和文件名在效勞器端保存FileUpload1.SaveAs(serverfilepath);//替換Image1所顯示的照片為所上傳的照片Image1.ImageUrl="~/"+filename;}}②按“文件上傳”按鈕后,上傳圖像文件。protectedvoidButtonOK_Click(objectsender,EventArgse){//“+”為字符串連接,<br>表示換行

Label1.Text=Label1.Text+"姓名:"+TextBox1.Text+"<br>";

Label1.Text=Label1.Text+"性別:"+RadioButtonList1.SelectedValue+"<br>";Label1.Text=Label1.Text+"專業(yè):"+DropDownList1.SelectedItem+"<br>";Label1.Text=Label1.Text+"愛好:";if(CheckBox1.Checked==true)Label1.Text=Label1.Text+CheckBox1.Text+"";if(CheckBox2.Checked==true)Label1.Text=Label1.Text+CheckBox2.Text+"";if(CheckBox3.Checked==true)Label1.Text=Label1.Text+CheckBox3.Text+"";if(CheckBox4.Checked==true)Label1.Text=Label1.Text+CheckBox4.Text+"";Label1.Text=Label1.Text+"<br>"+"照片:"+Image1.ImageUrl;Panel1.Visible=false;//隱藏Panel1

Panel2.Visible=true;//顯示Panel2}

③按“確定”按鈕后,依次獲得各輸入控件的輸入值或選定值字符串,并連接到Panel2的Label1的Text屬性;然后設(shè)置Panel1隱藏、Panel2顯示。。protectedvoidButtonCancel_Click(objectsender,EventArgse){TextBox1.Text="";//姓名文本框清空for(inti=0;i<=1;i++)//性別的兩個(gè)單項(xiàng)選擇鈕設(shè)置不選中RadioButtonList1.Items[i].Selected=false;//專業(yè)設(shè)置為原列表中的第一項(xiàng)DropDownList1.Text=DropDownList1.Items[0].Text;//以下設(shè)置愛好對應(yīng)的4個(gè)復(fù)選框不選中CheckBox1.Checked=false;CheckBox2.Checked=false;CheckBox3.Checked=false;CheckBox4.Checked=false;Image1.ImageUrl="";//設(shè)置Image1無圖片}④按“取消”按鈕后,依次清空或設(shè)置各控件的初始選定值。protectedvoidButtonReturn_Click(objectsender,EventArgse){Label1.Text="";Panel1.Visible=true;//顯示Panel1Panel2.Visible=false;//隱藏Panel2}⑤按“返回”按鈕后,顯示Panel1、隱藏Panel2。for(inti=0;i<=3;i++)if(CheckBoxList1.Items[i].Selected)Label1.Text=Label1.Text+CheckBoxList1.Items[i].Text+"";如果用1個(gè)CheckBoxList替換4個(gè)CheckBoxfor(inti=0;i<=1;i++)CheckBoxList1.Items[i].Selected=false;if(RadioButton1.Checked==true)Label1.Text=Label1.Text+RadioButton1.Text+"<br>";elseLabel1.Text=Label1.Text+RadioButton2.Text+"<br>";如果2個(gè)RadioButton替換RadioButtonListRadioButton1.Checked=false;RadioButton2.checked=false;①RegularExpressionValidator判斷用戶輸入的表達(dá)式是否正確,如、、URL等。②RangeValidator用來判斷用戶輸入的值是否在某一特定范圍內(nèi)。③CompareValidator用來比較兩個(gè)輸入控件之間的數(shù)據(jù)一致性,同時(shí)也可以用來校驗(yàn)控件中內(nèi)容的數(shù)據(jù)類型,如整形、字符串型等。④RequiredFieldValidator用于保證所驗(yàn)證的字段值不為空。驗(yàn)證控件驗(yàn)證控件用于校驗(yàn)用戶輸入數(shù)據(jù)的正確性,通常作為TextBox等控件的輔助控件。常用控件如下:各控件具有的共同屬性有:ControlToValidate:要進(jìn)行檢查的控件ID。ErrorMessage:當(dāng)檢查不合法時(shí),出現(xiàn)的錯(cuò)誤提示信息。各控件的其他屬性如下:【例6.8】使用驗(yàn)證控件對窗體控件進(jìn)行輸入數(shù)據(jù)的驗(yàn)證,驗(yàn)證內(nèi)容和錯(cuò)誤提示如下圖。①新建一個(gè)網(wǎng)頁。為了控件布局整齊,選擇“布局/插入表”菜單在Panel1上插入一個(gè)7行3列的表。第一行前兩個(gè)格“合并單元格”,在格內(nèi)輸入“用戶注冊”。各行的第一列輸入提示信息,第二列放文本框,第三列放有關(guān)驗(yàn)證控件并設(shè)置有關(guān)屬性。②生成“確定”按鈕的事件處理過程框架〔可無程序代碼〕。③運(yùn)行程序,輸入各數(shù)據(jù)項(xiàng),查看驗(yàn)證結(jié)果。有關(guān)驗(yàn)證控件及其初始屬性StaticDisplayLevels屬性:指定靜態(tài)顯示的級別,超過級別的菜單那么為動(dòng)態(tài)顯示。導(dǎo)航控件一個(gè)Web站點(diǎn)包含很多頁面,這些頁面之間存在著層次結(jié)構(gòu)關(guān)系,使用Menu、SiteMapPath和Tree等導(dǎo)航控件可以實(shí)現(xiàn)站點(diǎn)導(dǎo)航功能。1.Menu控件Menu控件用于創(chuàng)立導(dǎo)航菜單。菜單有靜態(tài)和動(dòng)態(tài)兩種顯示模式:靜態(tài)模式的菜單項(xiàng)始終是完全展開的。動(dòng)態(tài)模式的菜單需要鼠標(biāo)點(diǎn)擊才能展開。【例6.9】建立一個(gè)有5個(gè)頁面的網(wǎng)站,使用Menu控件實(shí)現(xiàn)導(dǎo)航菜單,如下圖。①建立5個(gè)頁面,分別命名為Default.aspx、Default2.aspx、Default3.aspx、Default4.aspx、Default5.aspx。②在Default.aspx設(shè)計(jì)頁面上拖放一個(gè)Menu控件,設(shè)置StaticDisplayLevels為3或2。單擊Menu任務(wù)欄上的“編輯菜單項(xiàng)”菜單,在彈出的“菜單項(xiàng)編輯器”中添加菜單:利用“添加根項(xiàng)”添加菜單“首頁”、用“添加子項(xiàng)”添加其他菜單。利用其他按鈕可調(diào)整各菜單項(xiàng)層次和順序。③點(diǎn)擊Menu任務(wù)欄上的“自動(dòng)套用格式”,可選擇樣式進(jìn)行美化。④

頁面運(yùn)行,點(diǎn)擊菜單項(xiàng)可展開子菜單或?qū)Ш降讲藛雾?xiàng)對應(yīng)的頁面。提示:可通過已有網(wǎng)頁快速建立新的網(wǎng)頁。在例6.9的網(wǎng)站中,通過復(fù)制已有網(wǎng)頁建立新網(wǎng)頁〔如圖6.33〕:右擊Default.aspx文件,選擇“復(fù)制”菜單,然后選中工程,右擊選“粘貼”菜單,可建立一個(gè)頁面副本,將其重命名為Default1.aspx。

復(fù)制default.aspx頁面文件粘貼default.aspx文件重命名為default1.aspx通過復(fù)制、粘貼可快速建立新頁面,在aspx文件被復(fù)制的同時(shí),相關(guān)的aspx.cs文件被復(fù)制。如果VisualStudio的“網(wǎng)站/啟動(dòng)選項(xiàng)…”設(shè)置為使用“當(dāng)前頁”,那么調(diào)試運(yùn)行程序時(shí),以當(dāng)前頁面為啟動(dòng)頁面。SiteMapPath控件會(huì)顯示一個(gè)導(dǎo)航路徑,以顯示用戶當(dāng)前在Web網(wǎng)站上所處的位置,并提供返回到主頁的鏈接。2.SiteMapPath控件說明:SiteMapPath控件需要使用來自站點(diǎn)地圖文件中的導(dǎo)航數(shù)據(jù),這些數(shù)據(jù)包括網(wǎng)站中的網(wǎng)頁信息及其層次結(jié)構(gòu)信息。【例6.10】在例6.9的各個(gè)頁面添加SiteMapPath控件,實(shí)現(xiàn)瀏覽位置顯示和導(dǎo)航。②在解決方案資源管理器中,右擊應(yīng)用程序,選擇“添加新項(xiàng)“菜單,在“添加新項(xiàng)”對話框中選擇,會(huì)新增一個(gè)站點(diǎn)地圖文件〔Web.sitemap文件〕。①

通過復(fù)制例6.9的網(wǎng)站快速建立新的網(wǎng)站W(wǎng)ebSite10。③翻開Web.sitemap文件,可以看到以XML的形式描述了站點(diǎn)的根本結(jié)構(gòu)框架,用來說明各頁面URL、標(biāo)題、描述及其在導(dǎo)航層次結(jié)構(gòu)中的位置等。編輯該文件使其反響頁面文件結(jié)構(gòu)信息,下面文件描述了包含5個(gè)頁面文件的站點(diǎn)地圖。提示:可通過復(fù)制建立新網(wǎng)站。在VisualStudio主菜單項(xiàng)選擇擇“網(wǎng)站/復(fù)制網(wǎng)站”,在“連接”處選“連接到”命令找到以新網(wǎng)站命名的文件夾〔如不存在,會(huì)自動(dòng)創(chuàng)立〕,然后選中源網(wǎng)站的所有文件后,點(diǎn)擊“”按鈕即可復(fù)制建立一個(gè)網(wǎng)站。下面文件描述了包含5個(gè)頁面文件的站點(diǎn)地圖:<?xmlversion="1.0"encoding="utf-8"?><siteMapxmlns="://schemas.microsoft/AspNet/SiteMap-File-1.0"><siteMapNodeurl="~/Default.aspx"title="首頁"description=""><siteMapNodeurl="~/Default2.aspx"title="選課管理"description=""><siteMapNodeurl="~/Default3.aspx"title="選課退課"description=""/><siteMapNodeurl="~/Default4.aspx"title="課表查看"description=""/></siteMapNode><siteMapNodeurl="~/Default5.aspx"title="成績管理"description=""/></siteMapNode></siteMap>④在Default5.aspx、Default2.aspx、Default3.aspx、Default4.aspx文件中分別添加SiteMapPath控件,會(huì)發(fā)現(xiàn)控件自動(dòng)顯示導(dǎo)航信息,包括根節(jié)點(diǎn)與當(dāng)前節(jié)點(diǎn)之間的所有頁面,形式是橫向排列并以大于號(hào)〔>〕分隔每個(gè)鏈接。⑤

運(yùn)行程序,可通過SiteMapPath導(dǎo)航,也可通過上例的菜單導(dǎo)航。①拖放一個(gè)TreeView控件到窗體,單擊TreeView任務(wù)欄上的“編輯節(jié)點(diǎn)”菜單,在彈出的“TreeView節(jié)點(diǎn)編輯器”中添加節(jié)點(diǎn),其中Text屬性為節(jié)點(diǎn)顯示的文本,NavigateURL屬性為該文本的導(dǎo)航URL鏈接,Target屬性設(shè)置URL頁面的翻開方式。②點(diǎn)擊任務(wù)欄上的“自動(dòng)套用格式”,如“選擇Windows幫助”樣式。3.TreeView控件TreeView控件的用法與Menu控件類似,但一般用于以層次結(jié)構(gòu)顯示和導(dǎo)航樹型結(jié)構(gòu)的組織目錄、文件目錄、事件目錄等?!纠?.11】使用TreeView控件瀏覽文件目錄。

6.3主題和母版頁主題和母版的使用是為了統(tǒng)一網(wǎng)站的設(shè)計(jì)風(fēng)格。主題針對網(wǎng)站外觀的統(tǒng)一,使所有的窗體都采用相同的界面風(fēng)格;母版針對網(wǎng)站內(nèi)容的統(tǒng)一,如每個(gè)頁面都有公司的Logo。主題主題是指控件和頁面外觀屬性設(shè)置的集合。使用主題首先需要?jiǎng)?chuàng)立主題文件,然后將其應(yīng)用到單個(gè)頁面、應(yīng)用程序的所有頁面或所有應(yīng)用程序中。主題中可以包含以下文件:皮膚文件〔SKIN文件〕:定義一個(gè)或多個(gè)控件的外觀;樣式文件〔CSS文件〕:定義頁面外觀,如背景、超鏈接文本的樣式等。圖片文件:顯示在多個(gè)頁面上的圖片。②在解決方案資源管理器中,右擊應(yīng)用程序選“添加ASP.NET文件夾/主題”菜單項(xiàng)。應(yīng)用程序中出現(xiàn)一個(gè)名為“App_Themes“的主題文件夾,并創(chuàng)立了名為“主題1”的子文件夾,“主題1”是新建主題的名稱,可改為自己想要的名稱。1.皮膚文件的創(chuàng)立【例6.12】針對例6.8的用戶注冊窗體創(chuàng)立和應(yīng)用皮膚文件。①復(fù)制例6.8的工程。皮膚文件定義一個(gè)或多個(gè)控件的外觀。③在主題文件下選擇“添加新項(xiàng)/外觀文件”添加皮膚文件。在皮膚文件中定義用于一類控件的默認(rèn)皮膚,或者用于單個(gè)控件設(shè)置的命名皮膚。

<asp:Labelrunat="server"ForeColor="Blue"/><asp:TextBoxrunat="server"ForeColor="Black"BorderColor="Red"BorderStyle="Dotted"/><asp:TextBox

SkinID="BorderDouble"runat="server"BorderColor="Red"BorderStyle="Double"/>④編輯SkinFile.skin文件。編輯文件有兩種方法,一是直接編輯代碼;另一種簡便方法是在設(shè)計(jì)窗口設(shè)置某一個(gè)控件的外觀屬性,然后復(fù)制源窗口中生成的代碼到SkinFile.skin文件中,去掉控件ID屬性即可。

定義了Label控件的默認(rèn)皮膚:前景色為藍(lán)色;定義了TextBox控件的默認(rèn)皮膚:前景色為黑色、邊框紅色、邊框風(fēng)格為點(diǎn)狀;定義了一個(gè)名為“BorderDouble”的TextBox控件的命名皮膚:邊框紅色、邊框風(fēng)格為“Double”命名主題的應(yīng)用方法為:在設(shè)置窗口選中控件TextBoxEmail,設(shè)置SkinID屬性值為“BorderDouble”。⑤有兩種應(yīng)用默認(rèn)主題的方法。一是在窗體的屬性頁中選擇對象“DOCUMENT”,然后設(shè)置“Theme”屬性為“主題1”。二是直接在窗體代碼中添加Theme說明。<%@PageLanguage="C#"CodeFile=""Inherits="_Default"Theme="主題1"%>⑦運(yùn)行程序,查看默認(rèn)皮膚和命名皮膚的應(yīng)用效果。2.樣式文件的創(chuàng)立和應(yīng)用【例6.13】針對例6.12的用戶注冊窗體創(chuàng)立和應(yīng)用樣式文件。樣式文件定義頁面外觀,如背景、超鏈接文本的樣式等。①在主題文件下選擇“添加新項(xiàng)/樣式表”可以添加樣式文件“StyleSheet.css”

。②為樣式添加背景圖片“Bluehills.jpg。右擊“主題1”,選擇“新建文件夾”,添加一個(gè)存放圖片的文件夾Images,通過添加現(xiàn)有項(xiàng)為其添加圖片“Bluehills.jpg”

。③編輯StyleSheet.css文件代碼。有二種方式:直接編輯文件。設(shè)置頁面的背景效果:平鋪圖象“Bluehills.jpg”且固定不動(dòng);A:link、A:visitedA:hoverA:active設(shè)置超文本鏈接的外觀和點(diǎn)擊效果;在編輯區(qū)右擊選擇“添加樣式規(guī)那么”。在“添加樣式規(guī)那么”對話框添加元素,選擇“生成樣式”,在樣式生成器中選擇設(shè)置樣式中的各個(gè)細(xì)節(jié),將生成body元素中的代碼。④在頁面上增加兩個(gè)超鏈接。增加一個(gè)新頁面Default2.aspx,設(shè)置超鏈接的NavigateUrl為“~/Default2.aspx”。⑤因?yàn)橐呀?jīng)在窗體中設(shè)置了“Theme”屬性為“主題1”,樣式文件可應(yīng)用到窗體。body{ Background-image:url("Images/Bluehills.jpg"); Background-repeat:repeat; Background-attachment:fixed;}A:link{ Color:Blue; Text-decoration:underline;}A:visited{ Color:Blue; Text-decoration:underline;}A:hover{ Color:Orange; Text-decoration:none; Font-size:large; font-weight:bold;}A:active{ Color:Red; Text-decoration:none;}StyleSheet.css樣式文件內(nèi)容:

①在應(yīng)用程序中“添加新項(xiàng)/Web配置文件”。②編輯Web.config文件,為<Pages>屬性設(shè)置Theme屬性即可將主題應(yīng)用到所有頁面。3.將主題應(yīng)用于整個(gè)應(yīng)用程序如果希望應(yīng)用程序的所有頁面使用同一主題,可以在應(yīng)用程序的Web.config文件中定義。為單個(gè)頁面設(shè)置Theme屬性,將創(chuàng)立的.skin和.css文件應(yīng)用到了單個(gè)頁面。<configuration> <appSettings/> <connectionStrings/> <system.web>

<pagestheme="主題1"/> </system.web></configuration>①在解決方案資源管理器中右擊應(yīng)用程序,選擇“添加新項(xiàng)”,在模板列表中選“”,默認(rèn)的文件名為“MasterPage.master”。母版母版可以為應(yīng)用程序的多個(gè)頁面創(chuàng)立一致的布局。母版頁實(shí)際由兩局部組成,即母版頁本身與一個(gè)或多個(gè)內(nèi)容頁,當(dāng)用戶請求頁面時(shí),母版頁與內(nèi)容頁組合在一起后輸出?!纠?.14】創(chuàng)立和應(yīng)用母版。②編輯MasterPage.master文件,就像設(shè)計(jì)普通網(wǎng)頁一樣將要在母版上顯示的信息或控件設(shè)計(jì)好,需要內(nèi)容變動(dòng)的地方就放置一個(gè)“ContentPlaceHolder”。

③應(yīng)用母版。在新建窗體時(shí),在對話框下方選中“選擇母版頁”,將自動(dòng)出現(xiàn)“選擇母版頁”對話框,選中要應(yīng)用的母版文件,出現(xiàn)的頁面設(shè)計(jì)窗口,頁面的設(shè)計(jì)與設(shè)計(jì)其他頁面方法相同,只是限制在Content內(nèi)進(jìn)行,母板會(huì)跟隨每一頁。

④運(yùn)行程序,點(diǎn)擊超鏈接時(shí),只有Content區(qū)域的內(nèi)容發(fā)生變化。

6.4Web應(yīng)用的狀態(tài)管理在一個(gè)Web應(yīng)用程序中,需要實(shí)現(xiàn)跨頁傳值,使頁面間共享信息;還需要解決多個(gè)用戶共享頁面信息的問題,這需要對Web應(yīng)用的狀態(tài)進(jìn)行管理。狀態(tài)管理概述為了維護(hù)每一步操作中所產(chǎn)生的信息,ASP.NET提供了多種狀態(tài)維護(hù)技術(shù),包括客戶端狀態(tài)管理和效勞器端狀態(tài)管理技術(shù)。狀態(tài)管理的常用對象有:1.向?yàn)g覽器發(fā)送信息:Response對象Response對象可以向客戶端瀏覽器發(fā)送信息,在頁面上輸出信息或轉(zhuǎn)移到另一個(gè)網(wǎng)址,傳遞頁面的參數(shù),還可輸出和控制Cookies信息等。Response的常用方法:Write(字符串):將指定字符串寫入HTTP響應(yīng)輸出流。Redirect(URL)

溫馨提示

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

評論

0/150

提交評論