ASP.NET程序設(shè)計(jì)教程(C#版)第4版 課件 第1-6章 Web基礎(chǔ)知識(shí)、Web前端設(shè)計(jì)基礎(chǔ)-使用ASP.NET AJAX_第1頁
ASP.NET程序設(shè)計(jì)教程(C#版)第4版 課件 第1-6章 Web基礎(chǔ)知識(shí)、Web前端設(shè)計(jì)基礎(chǔ)-使用ASP.NET AJAX_第2頁
ASP.NET程序設(shè)計(jì)教程(C#版)第4版 課件 第1-6章 Web基礎(chǔ)知識(shí)、Web前端設(shè)計(jì)基礎(chǔ)-使用ASP.NET AJAX_第3頁
ASP.NET程序設(shè)計(jì)教程(C#版)第4版 課件 第1-6章 Web基礎(chǔ)知識(shí)、Web前端設(shè)計(jì)基礎(chǔ)-使用ASP.NET AJAX_第4頁
ASP.NET程序設(shè)計(jì)教程(C#版)第4版 課件 第1-6章 Web基礎(chǔ)知識(shí)、Web前端設(shè)計(jì)基礎(chǔ)-使用ASP.NET AJAX_第5頁
已閱讀5頁,還剩124頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章ASP.NET概述本章講述的主要內(nèi)容1.1Web基礎(chǔ)知識(shí)1.2VisualStudio集成開發(fā)環(huán)境1.3實(shí)訓(xùn)設(shè)計(jì)一個(gè)簡單的課表查詢網(wǎng)站

1.1Web基礎(chǔ)知識(shí)1.1.1

B/S架構(gòu)與ASP.NET1.1Web基礎(chǔ)知識(shí)1.1.2Web標(biāo)準(zhǔn)概述1999年W3C制定了HTML4.01標(biāo)準(zhǔn),隨后公布了CSS2.1和JavaScript標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)統(tǒng)稱為Web1.0標(biāo)準(zhǔn)。

隨著W3C對(duì)HTML5、CSS3、JavaScript、Canvas、SVG以及移動(dòng)設(shè)備開發(fā)規(guī)范等一系列新標(biāo)準(zhǔn)的發(fā)布,標(biāo)識(shí)著以HTML5+CSS3為核心的Web2.0時(shí)代的到來。1.1Web基礎(chǔ)知識(shí)1.1.3靜態(tài)和動(dòng)態(tài)網(wǎng)頁1.靜態(tài)網(wǎng)頁靜態(tài)網(wǎng)頁具有以下一些特征:①網(wǎng)頁的內(nèi)容(文本、圖像、聲音、超鏈接等)和外觀對(duì)任何一個(gè)訪問者無論以何種方式訪問都是保持不變的。②網(wǎng)頁中不包含除了超鏈接跳轉(zhuǎn)以外的任何與客戶端進(jìn)行交互的功能。2.動(dòng)態(tài)網(wǎng)頁客戶端動(dòng)態(tài)網(wǎng)頁:包含JavaScript、VBScript、ActiveX控件、jQuery、Ajax等,在客戶端與用戶實(shí)現(xiàn)交互。(2)服務(wù)器端動(dòng)態(tài)網(wǎng)頁:服務(wù)器端動(dòng)態(tài)網(wǎng)頁與客戶端動(dòng)態(tài)網(wǎng)頁的主要不同在于所有的數(shù)據(jù)分析、判斷和其它處理工作都在服務(wù)器端進(jìn)行,服務(wù)器只將處理好的結(jié)果以HTML代碼流的形式發(fā)送給客戶端。1.2VisualStudio集成開發(fā)環(huán)境VisualStudio(以下簡稱為VS)是Microsoft推出的用于Windows應(yīng)用程序和Web應(yīng)用程序開發(fā)的重要平臺(tái),目前其最高版本為VS2015,內(nèi)置.NETFramework版本為4.5.2,同時(shí)提供對(duì).NETFramework2.0、3.0的支持。VS開發(fā)平臺(tái)將程序設(shè)計(jì)中需要的各個(gè)環(huán)節(jié)(界面設(shè)計(jì)、程序設(shè)計(jì)、運(yùn)行和調(diào)試程序等)集成在同一個(gè)窗口中,極大地方便了開發(fā)人員的設(shè)計(jì)工作。通常將這種集多種功能于一身的開發(fā)平臺(tái)稱為集成開發(fā)環(huán)境(IDE)。1.2VisualStudio集成開發(fā)環(huán)境1.2.1VS項(xiàng)目管理1.VS中的常用模板VS中關(guān)于ASP.NET提供了“Web網(wǎng)站”(WebSite)和“Web應(yīng)用程序”(WebApplication)項(xiàng)目兩種常用的模板。創(chuàng)建Web網(wǎng)站(2)創(chuàng)建Web應(yīng)用程序項(xiàng)目1.2VisualStudio集成開發(fā)環(huán)境1.2.1VisualStudio項(xiàng)目管理2.Web網(wǎng)站與Web應(yīng)用程序的區(qū)別(1)Web網(wǎng)站在這種方式下每個(gè)Web頁面一般由.aspx和.aspx.cs兩個(gè)文件來表示。前者主要用于表現(xiàn)頁面內(nèi)容、布局等外觀屬性,后者存放了用于實(shí)現(xiàn)程序功能的源代碼。網(wǎng)站發(fā)布時(shí)系統(tǒng)會(huì)將.aspx.cs中的源代碼編譯成獨(dú)立的二進(jìn)制.dll文件存放在名為bin的文件夾中。Web網(wǎng)站創(chuàng)建后所在文件夾中沒有.csproj項(xiàng)目文件,此時(shí)系統(tǒng)將整個(gè)目錄結(jié)構(gòu)當(dāng)成一個(gè)項(xiàng)目。1.2VisualStudio集成開發(fā)環(huán)境1.2.1VisualStudio項(xiàng)目管理2.Web網(wǎng)站與Web應(yīng)用程序的區(qū)別(2)Web應(yīng)用程序Web應(yīng)用程序可以作為類庫被引用,非常適合于項(xiàng)目分模塊開發(fā)方式。通過創(chuàng)建Web應(yīng)用程序的方式可以創(chuàng)建ASP.NETMVC。

在Web應(yīng)用程序項(xiàng)目中,每一個(gè)Web頁面都由.aspx、.aspx.cs、aspx.design.cs三個(gè)文件來表示。其中.aspx.design.cs文件通常存放的是一些頁面控件中控件的配置信息,也就是控件注冊頁面。它是窗體設(shè)計(jì)器生成的代碼文件,作用是對(duì)窗體上的控件執(zhí)行初始化工作,一般不需要程序員進(jìn)行手工編輯。1.2VisualStudio集成開發(fā)環(huán)境1.2.2集成開發(fā)環(huán)境中的主要子窗口

工具箱Web窗體設(shè)計(jì)器代碼編輯窗口解決方案資源管理器屬性窗口輸出窗口1.2VisualStudio集成開發(fā)環(huán)境1.2.2ASP.NET常用文件和文件夾1.ASP.NET常用文件類型1.2VisualStudio集成開發(fā)環(huán)境1.2.2ASP.NET常用文件和文件夾2.ASP.NET常用文件夾1.2VisualStudio集成開發(fā)環(huán)境1.2.4創(chuàng)建ASP.NET網(wǎng)站的基本步驟1.創(chuàng)建一個(gè)ASP.NET網(wǎng)站①根據(jù)用戶需求進(jìn)行問題分析,構(gòu)思出合理的程序設(shè)計(jì)思路。②創(chuàng)建一個(gè)新的ASP.NET網(wǎng)站。③設(shè)計(jì)網(wǎng)站包含的所有Web頁面的外觀。④設(shè)置頁面中所有控件對(duì)象的初始屬性值⑤編寫用于響應(yīng)系統(tǒng)事件或用戶事件的代碼。⑥試運(yùn)行并調(diào)試程序,糾正存在的錯(cuò)誤,調(diào)整程序界面,提高容錯(cuò)能力和操作的便捷性,使程序更符合用戶的操作習(xí)慣,通常將這一過程稱為提高程序的“友好性”。參閱源代碼:ex1-11.2VisualStudio集成開發(fā)環(huán)境1.2.4創(chuàng)建ASP.NET網(wǎng)站的基本步驟2.保存和打開ASP.NET項(xiàng)目保存項(xiàng)目項(xiàng)目及文件重命名(3)打開網(wǎng)站和項(xiàng)目1.3實(shí)訓(xùn)

創(chuàng)建一個(gè)簡單課表查詢網(wǎng)站1.3.1實(shí)訓(xùn)目的

通過本實(shí)訓(xùn)進(jìn)一步理解創(chuàng)建ASP.NET網(wǎng)站應(yīng)用程序的6個(gè)基本步驟。掌握VisualStudio集成開發(fā)環(huán)境各子窗口的使用方法,理解它們的作用。掌握在VisualStudio環(huán)境中設(shè)置和更改控件屬性的基本方法。1.3.2實(shí)訓(xùn)要求

本例假設(shè)某學(xué)?,F(xiàn)有3個(gè)班級(jí),要求設(shè)計(jì)一個(gè)能在網(wǎng)絡(luò)中通過IE瀏覽器進(jìn)行各學(xué)生班級(jí)課表查詢的ASP.NET網(wǎng)站。1.3.3實(shí)訓(xùn)步驟參閱源代碼:train1第2章Web網(wǎng)站前端設(shè)計(jì)基礎(chǔ)本章講述的主要內(nèi)容2.1HTML5標(biāo)記語言2.2網(wǎng)頁的樣式控制2.3頁面布局2.4實(shí)訓(xùn)頁面布局綜合練習(xí)2.1HTML5標(biāo)記語言2014年W3C在HTML4的基礎(chǔ)上推出了HTML5的正式標(biāo)準(zhǔn),并迅速獲得各大瀏覽器產(chǎn)品的支持(如,IE、Firefox、Chrome等)。HTML5目前已成為網(wǎng)頁設(shè)計(jì)的主流趨勢,那些不支持或不完全支持HTML5的瀏覽器產(chǎn)品正逐步被淘汰。需要說明的是Microsoft的IE瀏覽器從IE9開始部分支持HTML5,直到IE11才實(shí)現(xiàn)了對(duì)HTML5的完全支持,但I(xiàn)E11只能運(yùn)行在Windows7以上版本的操作系統(tǒng)上,不支持早期的WindowsXP。運(yùn)行本書示例時(shí)建議在Windows7以上環(huán)境中,使用IE11瀏覽器。2.1HTML5標(biāo)記語言2.1.1HTML5的基本結(jié)構(gòu)1.文檔結(jié)構(gòu)2.1HTML5標(biāo)記語言2.1.1HTML5的基本結(jié)構(gòu)2.HTML5與早期版本的不同標(biāo)記不區(qū)分大小寫(2)結(jié)束標(biāo)記可以省略(3)boolean類屬性的設(shè)置(4)屬性引號(hào)允許省略2.1HTML5標(biāo)記語言2.1.2在VS中設(shè)計(jì)網(wǎng)頁1.向ASP.NET網(wǎng)站中添加靜態(tài)網(wǎng)頁添加現(xiàn)有靜態(tài)網(wǎng)頁

添加→現(xiàn)有項(xiàng)→添加現(xiàn)有項(xiàng)→.html網(wǎng)頁(2)新建靜態(tài)網(wǎng)頁

添加→添加新項(xiàng)→選擇“HTML頁”模板2.1HTML5標(biāo)記語言2.1.2在VS中設(shè)計(jì)網(wǎng)頁2..aspx文件和HTML文件VS2015中創(chuàng)建的Web窗體中各元素默認(rèn)以HTML5規(guī)范描述,頁面中Web服務(wù)器控件以<asp>標(biāo)記表示。

Web服務(wù)器控件與普通HTML元素相比最突出的不同點(diǎn)就是具有runat="server"的屬性,表示控件在服務(wù)器端運(yùn)行。2.1HTML5標(biāo)記語言2.1.2在VS中設(shè)計(jì)網(wǎng)頁3.VS提供的設(shè)計(jì)環(huán)境在VisualStudio中編輯、修改HTML或.aspx文件時(shí),無論是編寫HTML標(biāo)記代碼還是編寫JavaScript腳本代碼,都可以通過系統(tǒng)提供的智能提示功能快速完成編輯工作。2.1HTML5標(biāo)記語言2.1.3HTML5的常用元素1.文本元素標(biāo)記2.1HTML5標(biāo)記語言2.1.3HTML5的常用元素2.層標(biāo)記<div>層標(biāo)記以<div>標(biāo)記開始,以</div>標(biāo)記結(jié)束。該標(biāo)記用來定義頁面中的一個(gè)特殊區(qū)域,區(qū)域內(nèi)可包含文字、圖片、表格或下級(jí)<div>等。使用<div>標(biāo)記可方便的將若干頁面元素組成一個(gè)集合,進(jìn)而統(tǒng)一設(shè)置該集合的顯示位置及所含元素的樣式。<div>是HTML5頁面布局中使用最多,也是最重要的標(biāo)記之一。3.超鏈接標(biāo)記<a>

<ahref=URL地址target=打開窗口方式>熱點(diǎn)文本</a>2.1HTML5標(biāo)記語言2.1.3HTML5的常用元素4.列表標(biāo)記

(1)無序列表標(biāo)記<ul>

(2)有序列表標(biāo)記<ol>(3)自定義列表標(biāo)記<dl>2.1HTML5標(biāo)記語言2.1.2HTML5常用標(biāo)記5.表格標(biāo)記表格標(biāo)記中除了需要包含最基本的<tr>和<td>標(biāo)記外,其它一些輔助標(biāo)記見教材表2-22.1HTML5標(biāo)記語言2.1.2HTML5常用標(biāo)記6.圖像、音頻和視頻標(biāo)記圖像標(biāo)記<img>(2)音頻標(biāo)記<audio>(3)視頻標(biāo)記<video>2.2網(wǎng)頁的樣式控制

所謂樣式控制是指對(duì)頁面中各元素的外觀(字體大小、顏色、背景對(duì)齊方式等)進(jìn)行設(shè)置的方法。

在HTML中如果頁面較為簡單,一般可使用各標(biāo)記的style屬性來實(shí)現(xiàn)頁面樣式的控制。但對(duì)于結(jié)構(gòu)復(fù)雜,內(nèi)容豐富的頁面使用style屬性控制樣式勢必會(huì)造成許多重復(fù)工作量,頁面代碼也會(huì)顯得十分臃腫,此時(shí)可使用CSS對(duì)網(wǎng)頁樣式進(jìn)行統(tǒng)一的控制。2.2網(wǎng)頁的樣式控制2.2.1標(biāo)記的Style屬性

在HTML5中所有有關(guān)樣式的設(shè)置都可以由標(biāo)記的style屬性來完成。

其一般格式為:

<標(biāo)記style="參數(shù)1:值1;參數(shù)2:值2;……;參數(shù)n:值n">2.2網(wǎng)頁的樣式控制2.2.2CSS3的概念CSS(CascadingStyleSheets,級(jí)聯(lián)樣式表,也稱為層疊樣式表,簡稱為樣式表)是一種將頁面元素樣式設(shè)置集中化的方法。

引入CSS的主要目的就是為了實(shí)現(xiàn)將頁面結(jié)構(gòu)與頁面外觀表現(xiàn)分離。CSS目前最高版本是CSS3,它較之前的版本有很大的改進(jìn)。2.2網(wǎng)頁的樣式控制2.2.2CSS3的概念1.嵌入式CSS2.2網(wǎng)頁的樣式控制2.2.2CSS的概念2.外部鏈接式CSS所謂“外部鏈接式”樣式控制,是將樣式控制代碼單獨(dú)存放在一個(gè)以.css為擴(kuò)展名的文本文件內(nèi),通過<link>標(biāo)記引用其中對(duì)樣式的定義。2.2網(wǎng)頁的樣式控制2.2.2CSS的概念

樣式定義的優(yōu)先級(jí)如果網(wǎng)頁中既有內(nèi)聯(lián)式和嵌入式樣式定義,又有外部鏈接式樣式定義,而且這3種定義中還存在針對(duì)某特定元素的定義沖突。在這種情況下瀏覽器將采用“就近使用”的優(yōu)先原則,即采用與該元素位置最近的樣式定義。顯然,內(nèi)聯(lián)式樣式定義在任何情況下都最靠近元素位置,所以其優(yōu)先級(jí)是最高的,也就是說內(nèi)聯(lián)式樣式定義將覆蓋嵌入式和外部鏈接式樣式定義。而對(duì)于嵌入式和外部鏈接式樣式定義的優(yōu)先級(jí),要看<link>標(biāo)記和<style>標(biāo)記的書寫位置誰更靠近元素的位置。2.2網(wǎng)頁的樣式控制2.2.3CSS3常用選擇器1.類型選擇器“類型選擇器”也稱為“標(biāo)記選擇器”或“標(biāo)簽選擇器”,它是以網(wǎng)頁中現(xiàn)有標(biāo)記為名稱的選擇器,用于統(tǒng)一設(shè)置某種標(biāo)記的樣式。2.ID選擇器和類選擇器為了使相同的網(wǎng)頁元素具有不同的外觀設(shè)置,可以通過指定元素ID名稱并以該ID值為選擇器設(shè)置樣式。ID選擇器書寫時(shí)必須以“#”開頭。類選擇器通過類名稱指定一組樣式設(shè)置,網(wǎng)頁中的元素通過引用該類來應(yīng)用這些樣式設(shè)置。類選擇器書寫時(shí)必須以“.”開頭。2.2網(wǎng)頁的樣式控制2.2.3CSS3常用選擇器3.包含選擇器和組群選擇器包含選擇器用于設(shè)置某元素下面子元素的樣式。例如,下列代碼使用包含選擇器設(shè)置了<div>標(biāo)記下所有<a>子標(biāo)記的字號(hào)為36px,字體為黑體。<styletype="text/css">diva{font-size:36px;font-family:黑體}</style>群組選擇器可以對(duì)若干個(gè)不同元素進(jìn)行統(tǒng)一的樣式設(shè)置。2.2網(wǎng)頁的樣式控制2.2.3CSS3常用選擇器4.屬性選擇器2.2網(wǎng)頁的樣式控制2.2.3CSS3常用選擇器5.偽類選擇器選擇器:偽類名{屬性:值}2.2網(wǎng)頁的樣式控制2.2.4CSS3的盒模型1.盒模型的概念2.2網(wǎng)頁的樣式控制2.2.4CSS3的盒模型2.內(nèi)外邊距和盒大小外邊距(margin)(2)內(nèi)邊距(padding)(3)盒大小(box-sizing)3.盒區(qū)域顯示特效border-radius屬性(圓角)(2)border-image屬性(圖像邊框)(3)box-shadow屬性(陰影效果)2.2網(wǎng)頁的樣式控制2.2.5向網(wǎng)站中添加樣式表在解決方案資源管理器中將該樣式表文件(.css)拖動(dòng)到頁面源視圖的<head>標(biāo)記和</head>標(biāo)記之間,也可以將樣式表拖動(dòng)到頁面設(shè)計(jì)視圖窗口。

拖動(dòng)操作完成后,系統(tǒng)將自動(dòng)在<head>標(biāo)記和</head>標(biāo)記之間添如下所示的代碼:

<linkhref="xxxx.css"rel="stylesheet"type="text/css"/>2.3頁面布局2.3.1使用表格布局頁面目前雖然CSS+DIV布局技術(shù)占據(jù)了主導(dǎo)地位,但在一些小型環(huán)境、頁面局部設(shè)計(jì)或頁面元素定位中表格布局仍有自己的一席之地。2.3頁面布局2.3.2使用DIV和CSS布局頁面1.CSS+DIV頁面布局示例參閱源代碼:ex2-32.3頁面布局2.3.2使用DIV和CSS布局頁面2.CSS+DIV布局的常用技巧1.2.3.2.3頁面布局2.3.3頁面元素的定位流布局定位(static)2.坐標(biāo)絕對(duì)定位(absolute)3.坐標(biāo)相對(duì)定位(relative)參閱源代碼:ex2-42.4

實(shí)訓(xùn)頁面布局綜合練習(xí)2.4.1實(shí)訓(xùn)目的進(jìn)一步理解在VisualStudio環(huán)境中創(chuàng)建、編輯和引用CSS樣式表文件的基本步驟。理解層元素在頁面布局中的重要作用及使用方法。綜合運(yùn)用CSS+DIV布局技術(shù)設(shè)計(jì)出實(shí)用的網(wǎng)站主頁。2.4.2實(shí)訓(xùn)要求新建一個(gè)ASP.NET空網(wǎng)站,向網(wǎng)站中添加一個(gè)Web窗體頁Default.aspx。在Default.aspx中使用CSS+DIV技術(shù)設(shè)計(jì)出圖2-24所示的網(wǎng)站主頁效果。要求頁面中導(dǎo)航欄、銷售排行榜中內(nèi)容使用ASP.NET標(biāo)準(zhǔn)控件HyperLink,商品名稱、商品種類、用戶名、密碼欄使用ASP.NET標(biāo)準(zhǔn)控件TextBox,所有按鈕使用ASP.NET標(biāo)準(zhǔn)控件Button,商品種類欄使用ASP.NET標(biāo)準(zhǔn)控件DropDownList。2.4

實(shí)訓(xùn)頁面布局綜合練習(xí)第3章主題與母版頁本章講述的主要內(nèi)容

3.1使用主題與外觀文件

3.2母版頁與內(nèi)容頁

3.3從內(nèi)容頁訪問母版頁的內(nèi)容3.4實(shí)訓(xùn)使用母板頁和內(nèi)容頁

3.1使用主題與外觀文件3.1.1使用主題主題是一組外觀文件和CSS文件的集合。在解決方案資源管理器中,主題表現(xiàn)為一個(gè)ASP.NET特殊文件夾App_Themes下的一個(gè)子文件夾,其中可以存放外觀文件(.skin)和級(jí)聯(lián)樣式表文件(.css)。

在頁面的@Page指令中按如下所示添加頁面的Theme屬性或StyleSheetTheme屬性,即可將主題應(yīng)用到當(dāng)前頁面中。<%@PageLanguage="C#"…Theme="主題名稱"…%>或:<%@PageLanguage="C#"…StyleSheetTheme="主題名稱"…%>3.1

使用主題與外觀文件3.1.2

使用外觀文件

1.創(chuàng)建和使用外觀文件在解決方案資源管理器中,右鍵單擊某主題名稱,在彈出的快捷菜單中執(zhí)行“添加新項(xiàng)”命令,在打開的對(duì)話框中選擇“外觀文件”模板,并為外觀文件指定名稱后單擊“添加”按鈕,即可將外觀文件添加到指定的主題中。外觀文件添加到網(wǎng)站后,系統(tǒng)將自動(dòng)切換到外觀文件代碼編寫窗口。其中,<%……%>之間的內(nèi)容為注釋文本,用于提示用戶編寫代碼時(shí)的注意事項(xiàng)。外觀文件的內(nèi)容可在注釋信息之外進(jìn)行編寫。3.1

使用主題與外觀文件3.1.2

使用外觀文件

2..sink文件與.css文件的區(qū)別外觀文件(.skin)和級(jí)聯(lián)樣式表文件(.css)的主要區(qū)別有以下幾個(gè)方面。1)外觀文件可以使頁面中多個(gè)同類ASP.NET控件具有相同的外觀樣式,而級(jí)聯(lián)樣式表只能通過設(shè)置“CssClass”屬性實(shí)現(xiàn)單個(gè)ASP.NET控件的外觀樣式控制。2)外觀文件可以實(shí)現(xiàn)對(duì)所有ASP.NET控件的外觀設(shè)置,而級(jí)聯(lián)樣式表文件并不是對(duì)所有ASP.NET控件都有效,其主要應(yīng)用領(lǐng)域是HTML元素。3)在控制外觀屬性較多的ASP.NET控件時(shí),需要在樣式表文件中定義大量的類名選擇符,使文件變得十分臃腫。而且若各CSS類之間的關(guān)系處理不好,還可能造成頁面布局的混亂。3.1使用主題與外觀文件3.1.3利用主題實(shí)現(xiàn)頁面換膚在ASP.NET程序運(yùn)行時(shí),可以通過代碼實(shí)現(xiàn)頁面主體的動(dòng)態(tài)變更,即可以根據(jù)用戶的選擇變更主體,從而使頁面具有不同的外觀。

參閱源代碼:ex3-23.2母版頁與內(nèi)容頁3.2.1母版頁和內(nèi)容頁的概念母版頁是指其他網(wǎng)頁可以作為模板來引用的特殊網(wǎng)頁,其文件擴(kuò)展名為“.master”。在母版頁中,界面被分為公用區(qū)域和可編輯區(qū)。公用區(qū)的設(shè)計(jì)方法和普通網(wǎng)頁的設(shè)計(jì)方法相同,可編輯區(qū)需要使用ContentPlaceHolder控件預(yù)留出來。一個(gè)母版頁中可以有一個(gè)或多個(gè)可編輯區(qū)。

所謂內(nèi)容頁是指引用了母版頁的.aspx頁面。在內(nèi)容頁中母版頁的ContentPlaceHolder控件預(yù)留可編輯區(qū)域會(huì)自動(dòng)替換為Content控件,設(shè)計(jì)人員只要在其中填充需要顯示的內(nèi)容即可,在母版頁中定義的公共區(qū)域元素將自動(dòng)顯示在內(nèi)容頁中。3.2母版頁與內(nèi)容頁3.2.2

創(chuàng)建母版頁和內(nèi)容頁

1.創(chuàng)建母版頁

3.2

母版頁與內(nèi)容頁3.2.2

創(chuàng)建母版頁和內(nèi)容頁

2.創(chuàng)建內(nèi)容頁在解決方案資源管理器中,右鍵單擊網(wǎng)站名稱,在彈出的快捷菜單中執(zhí)行“添加新項(xiàng)”命令,在下圖所示的對(duì)話框中選擇“母版頁”,并為母版頁命名后單擊“添加”按鈕。參閱源代碼:ex3-33.3

從內(nèi)容頁訪問母板頁的內(nèi)容3.3.1從內(nèi)容頁訪問母版頁控件的屬性由于內(nèi)容頁被打開時(shí),會(huì)將母版頁合并到自己的頁面代碼中來構(gòu)成最終的頁面代碼,所以在內(nèi)容頁中訪問母版頁中的控件屬性是完全可能的。具體的實(shí)現(xiàn)方法是:首先使用系統(tǒng)Master類中提供的FindControl()方法,獲取對(duì)母版頁中控件的引用(相當(dāng)于得到母版頁控件的副本)。而后,對(duì)該引用進(jìn)行操作,讀取或更改母版頁控件的屬性值。FindControl()方法的語法格式為:Master.FindControl("被查找控件的ID屬性值");3.3從內(nèi)容頁訪問母板頁的內(nèi)容3.3.2在內(nèi)容頁中響應(yīng)母版頁控件的事件在母版頁中常包含類似用戶登錄、站內(nèi)搜索等需要與用戶交互操作的界面,這就需要能夠在內(nèi)容頁中處理發(fā)生在母版頁中的系統(tǒng)事件或用戶事件。在內(nèi)容頁中響應(yīng)母版頁中的事件,需要用到“委托”技術(shù),也就是說將母版頁中發(fā)生的事件“委托”給內(nèi)容頁中編寫的某個(gè)“方法”程序來處理。EventHandler委托的語法格式如下所示:事件名稱+=newEventHandler(處理事件的方法名稱);3.4實(shí)訓(xùn)使用母板頁和內(nèi)容頁3.4.1實(shí)訓(xùn)目的進(jìn)一步理解在VS環(huán)境中創(chuàng)建、編輯和引用母版頁、內(nèi)容頁的基本步驟。理解母版頁和內(nèi)容頁之間的關(guān)系。綜合運(yùn)用母版頁、內(nèi)容頁和CSS+DIV布局技術(shù)設(shè)計(jì)出實(shí)用的,具有統(tǒng)一風(fēng)格的網(wǎng)站頁面體系。3.4.2實(shí)訓(xùn)要求要求使用母板頁技術(shù)控制站內(nèi)其他網(wǎng)頁的外觀風(fēng)格。其中,母版頁設(shè)計(jì)效果如圖3-15所示,引用了母版頁的Default.aspx、QA.aspx內(nèi)容頁在瀏覽器中呈現(xiàn)類似圖3-16所示的效果。引用了母版頁的Slight.aspx內(nèi)容頁呈現(xiàn)圖3-17所示的效果。3.4實(shí)訓(xùn)使用母板頁和內(nèi)容頁3.4.2實(shí)訓(xùn)要求

3.4實(shí)訓(xùn)使用母板頁和內(nèi)容頁3.4.2實(shí)訓(xùn)要求

第4章C#程序設(shè)計(jì)基礎(chǔ)本章講述的主要內(nèi)容

4.1C#程序設(shè)計(jì)方法

4.2使用動(dòng)態(tài)控件

4.3創(chuàng)建和使用自定義控件

4.4實(shí)訓(xùn)

4.1C#程序設(shè)計(jì)方法4.1.1事件驅(qū)動(dòng)機(jī)制所謂“事件”指的是能被程序感知到的用戶或系統(tǒng)發(fā)起的操作。如用戶單擊了鼠標(biāo)、輸入了文字、選擇了選項(xiàng);系統(tǒng)將窗體裝入內(nèi)存并初始化等。

VS中包含了大量已定義的隸屬于各種控件的事件,如Click()、Load()、TextChange()等等。在代碼窗口中設(shè)計(jì)人員可以編寫響應(yīng)事件的代碼段來實(shí)現(xiàn)程序的具體功能,這就是可視化程序設(shè)計(jì)方法的事件驅(qū)動(dòng)機(jī)制。

當(dāng)然,除了系統(tǒng)預(yù)定義的各種事件外,還可以通過委托創(chuàng)建具有特定功能的自定義事件以滿足程序設(shè)計(jì)的需要。4.1C#程序設(shè)計(jì)方法4.1.2選擇結(jié)構(gòu)程序設(shè)計(jì)方法所謂選擇結(jié)構(gòu)是指程序可以根據(jù)一定的條件有選擇地執(zhí)行某一程序段,即對(duì)不同的問題采用不同的處理方法。C#提供了多種形式的條件語句來實(shí)現(xiàn)選擇結(jié)構(gòu)。1.if…else結(jié)構(gòu)if語句是程序設(shè)計(jì)中基本的選擇語句,if語句的語法格式為:if(條件表達(dá)式){語句序列1;}else{語句序列2;}4.1C#程序設(shè)計(jì)方法4.1.2選擇結(jié)構(gòu)程序設(shè)計(jì)方法

2.if…elseif結(jié)構(gòu)if…elseif語句的語法結(jié)構(gòu)如下:if(條件表達(dá)式1){條件表達(dá)式1成立時(shí)執(zhí)行的語句序列;}elseif(條件表達(dá)式2){條件表達(dá)式2成立時(shí)執(zhí)行的語句序列;}elseif(條件表達(dá)式n){條件表達(dá)式n成立時(shí)執(zhí)行的語句序列;}else{所有條件都不成立時(shí)執(zhí)行的語句序列;}4.1C#程序設(shè)計(jì)方法4.1.2選擇結(jié)構(gòu)程序設(shè)計(jì)方法

3.多分支選擇結(jié)構(gòu)(switch語句)switch語句的語法格式為:switch(控制表達(dá)式){case常量表達(dá)式1:

語句序列1;break;case常量表達(dá)式2:

語句序列2;break;default:

語句序列3;break;}4.1C#程序設(shè)計(jì)方法4.1.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)方法

1.for循環(huán)

for循環(huán)常常用于已知循環(huán)次數(shù)的情況(也稱為“定次循環(huán)”),使用該循環(huán)時(shí),測試是否滿足某個(gè)條件,如果滿足條件,則進(jìn)入下一次循環(huán),否則,退出該循環(huán)。for循環(huán)語句的語法格式為:for(表達(dá)式1;表達(dá)式2;表達(dá)式3){

循環(huán)語句序列(循環(huán)體);}4.1C#程序設(shè)計(jì)方法4.1.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)方法

2.while循環(huán)

while循環(huán)適合不定次循環(huán)的種情況。循環(huán)時(shí)在循環(huán)的頂部判斷某個(gè)條件是否滿足,當(dāng)循環(huán)的條件判斷為真時(shí)(滿足條件),進(jìn)入循環(huán),否則退出循環(huán)。while循環(huán)語句的格式為:while(條件表達(dá)式){

循環(huán)語句序列;}4.1C#程序設(shè)計(jì)方法4.1.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)方法

3.do…while循環(huán)

do…while循環(huán)非常類似于while循環(huán)。一般情況下,二者可以相互轉(zhuǎn)換使用。它們之間的差別在于while循環(huán)的測試條件在每一次循環(huán)開始時(shí)執(zhí)行,而do…while循環(huán)的測試條件在每一次循環(huán)體結(jié)束時(shí)進(jìn)行判斷。do…while語法的一般格式為:do{

語句序列;}while(條件表達(dá)式);4.1C#程序設(shè)計(jì)方法4.1.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)方法

4.foreach循環(huán)

foreach循環(huán)主要應(yīng)用于遍歷數(shù)據(jù)集(如,數(shù)組、集合、文件夾中的文件、數(shù)據(jù)表等)的場景中。其語法格式為:foreach(類型變量名in數(shù)據(jù)集名){

循環(huán)體語句;}4.1C#程序設(shè)計(jì)方法4.1.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)方法

5.循環(huán)的嵌套

若一個(gè)循環(huán)結(jié)構(gòu)中包含有另一個(gè)循環(huán),則稱為“循環(huán)的嵌套”。這種語句結(jié)構(gòu)稱為多重循環(huán)結(jié)構(gòu)。內(nèi)層循環(huán)中還以包含新的循環(huán),形成多層循環(huán)結(jié)構(gòu),循環(huán)嵌套的層數(shù)理論上無限制。在多重循環(huán)結(jié)構(gòu)中,三種循環(huán)語句(for循環(huán)、while循環(huán)和do…while循環(huán))可以互相嵌套。在多重循環(huán)中,需要注意的是循環(huán)語句所在循環(huán)的層次,內(nèi)循環(huán)必須完全包含在外循環(huán)內(nèi)部。4.1C#程序設(shè)計(jì)方法4.1.4使用類文件和類庫

類文件是添加到網(wǎng)站中的一種獨(dú)立的代碼集合,其中通常包含了關(guān)于程序中所涉及的對(duì)象的一些定義(對(duì)象的屬性、方法和事件等)和對(duì)數(shù)據(jù)庫的操作(對(duì)數(shù)據(jù)庫的增、刪、改、查),也可以包含一些應(yīng)用程序的業(yè)務(wù)邏輯實(shí)現(xiàn)。

類庫中包含的內(nèi)容與類文件基本相同,只是類庫需要單獨(dú)創(chuàng)建,編譯后將生成一個(gè).dll文件(動(dòng)態(tài)鏈接庫文件)。類庫不隸屬于網(wǎng)站項(xiàng)目,只能被網(wǎng)站引用。類庫被引用后便可在網(wǎng)站中使用其中定義的對(duì)象和方法。4.1C#程序設(shè)計(jì)方法4.1.4使用類文件和類庫

1.向網(wǎng)站中添加類文件4.1C#程序設(shè)計(jì)方法4.1.4使用類文件和類庫

2.引用類庫類庫是包含了一些特定功能(如,數(shù)據(jù)庫操作、某種業(yè)務(wù)邏輯的實(shí)現(xiàn)等)的應(yīng)用程序封裝。類庫可以由程序員根據(jù)實(shí)際需要自行編寫代碼創(chuàng)建,也可以直接引用第三方提供的已編譯完成的.dll文件。Internet中存在大量優(yōu)秀的,由第三方編寫、封裝的.dll格式的類庫或組件文件,直接引用這些類庫可以非常輕松的完成一些看似很復(fù)雜的工作。例如,需要在沒有安裝MicrosoftWord軟件的Web服務(wù)器中,對(duì)Word文檔進(jìn)行讀、寫、插圖、插表、合并文檔等操作時(shí),就可以借助由第三方提供的,功能十分強(qiáng)大的Aspose.Words.dll來實(shí)現(xiàn)。

參閱源代碼:ex4-64.2使用動(dòng)態(tài)控件存放在工具箱中的各種控件,都是以“類”的形式出現(xiàn)的。例如,工具箱中的按鈕控件圖標(biāo)就代表了各種表現(xiàn)形式的所有按鈕。也就是說工具箱中的控件表現(xiàn)的是一種“類型”,將其添加到窗體的操作實(shí)際上是完成了“類的實(shí)例化”,即將抽象的類型轉(zhuǎn)換成實(shí)際的對(duì)象。由于控件是控件類的實(shí)例化結(jié)果,自然可以在程序運(yùn)行中使用代碼動(dòng)態(tài)地創(chuàng)建、顯示和操作控件。通常將由代碼根據(jù)實(shí)際需要?jiǎng)討B(tài)創(chuàng)建的控件稱為“動(dòng)態(tài)控件”。4.2使用動(dòng)態(tài)控件4.2.1創(chuàng)建動(dòng)態(tài)控件

1.實(shí)例化控件類控件類的實(shí)例化與普通類的實(shí)例化步驟完全相同,其語法格式為:

控件類名對(duì)象名=new控件類名;例如,下列語句用于實(shí)例化一個(gè)Button類對(duì)象。

Buttonbtn=newButton();通過控件類實(shí)例化得到的控件對(duì)象,可以像處理普通控件一樣設(shè)置其初始屬性。例如:

4.2使用動(dòng)態(tài)控件4.2.1創(chuàng)建動(dòng)態(tài)控件

2.創(chuàng)建控件類對(duì)象的事件通過實(shí)例化得到控件類對(duì)象后,通常需要使用帶有兩個(gè)參數(shù)的EventHandler委托來定義對(duì)象的某個(gè)事件。概括的說使用EventHandler委托聲明對(duì)象事件的語法格式為:

對(duì)象名.事件名+=newEventHandler(事件處理程序名);例如,聲明某文本框?qū)ο髏xt的TextChanged事件可使用如下語句:

txt.TextChanged+=EventHandler(txt_TextChanged);4.2使用動(dòng)態(tài)控件4.2.2使用動(dòng)態(tài)控件

1.將動(dòng)態(tài)控件添加到Web頁面將控件對(duì)象添加到窗體或某個(gè)容器控件中,需要使用Controls類的Add方法,其語法格式為:

Controls.Add(對(duì)象名稱);例如,下列代碼可將一個(gè)按鈕對(duì)象添加到窗體的指定位置。4.2使用動(dòng)態(tài)控件4.2.2使用動(dòng)態(tài)控件

2.訪問動(dòng)態(tài)控件的屬性訪問控件對(duì)象的屬性需要首先使用Controls類的Find方法查找控件,該方法帶有的兩個(gè)參數(shù)分別表示被查找控件的Name屬性值和是否查找子控件。其語法格式為:

Control[]結(jié)果集名稱=Controls.Find("對(duì)象Name屬性值",true/false)Find方法的返回值為一個(gè)控件集合(存放所有找到的控件)。如果希望訪問結(jié)果集中第n個(gè)控件的某屬性值可使用如下代碼:

變量類型變量名=結(jié)果集名稱[n-1].屬性名;

[n-1]:結(jié)果集的索引值從零開始

參閱源代碼:ex4-74.3創(chuàng)建和使用自定義控件4.3.1創(chuàng)建自定義控件創(chuàng)建或打開一個(gè)ASP.NET網(wǎng)站,在解決方案資源管理器中右鍵單擊網(wǎng)站名稱,在彈出的快捷菜單中執(zhí)行“添加”下的“Web用戶控件”命令,在彈出的對(duì)話框中指定自定義控件文件名后單擊“確定”按鈕。在設(shè)計(jì)自定義控件時(shí)所使用的編程技術(shù)與設(shè)計(jì)Web頁面的技術(shù)完全相同,甚至只需對(duì)Web窗體(.aspx)進(jìn)行簡單的修改即可使之成為自定義控件。自定義控件文件名以“.ascx”為擴(kuò)展名進(jìn)行標(biāo)識(shí)。自定義控件頁與Web窗體頁主要有以下兩點(diǎn)區(qū)別:①自定義控件頁只能以.ascx為擴(kuò)展名;②在自定義控件文件中不能包含<html>、<body>、<from>元素,這些元素應(yīng)位于宿主頁(引用自定義控件的Web窗體)中。4.3創(chuàng)建和使用自定義控件4.3.2使用自定義控件

2.程序運(yùn)行時(shí)動(dòng)態(tài)添加自定義控件通常需要在主Web頁面中添加一個(gè)容器控件PlaceHolder,作為用戶自定義控件的“占位”控件。在程序運(yùn)行時(shí)通過代碼創(chuàng)建一個(gè)自定義控件的實(shí)例,而后將自定義控件添加到容器控件中。

例如:4.3創(chuàng)建和使用自定義控件4.3.2使用自定義控件

1.程序設(shè)計(jì)時(shí)使用自定義控件在解決方案資源管理器中,將設(shè)計(jì)完畢的自定義控件直接從解決方案資源管理器拖動(dòng)到頁面適當(dāng)?shù)奈恢?。窗體設(shè)計(jì)器能自動(dòng)向Web頁面添加@Register指示符,使自定義控件成為Web窗體的一個(gè)組成部分。此外,當(dāng)自定義控件被添加到Web窗體中后,該控件的公共屬性、事件和方法也將向Web窗體公開,并可以通過編程的方式來使用。4.4實(shí)訓(xùn)掌握C#程序設(shè)計(jì)方法4.4.1實(shí)訓(xùn)目的通過上機(jī)操作掌握C#中結(jié)構(gòu)化程序設(shè)計(jì)的基本方法;理解順序結(jié)構(gòu)、選擇結(jié)構(gòu)的基本概念;掌握if…else、switch語句的使用方法。通過本實(shí)訓(xùn)進(jìn)一步理解使用C#創(chuàng)建ASP.NET網(wǎng)站的一般步驟和常用編程技巧。4.4.2實(shí)訓(xùn)要求為小學(xué)生設(shè)計(jì)一個(gè)用于100以內(nèi)的加法練習(xí)程序。第5章ASP.NET常用對(duì)象和狀態(tài)管理本章講述的主要內(nèi)容5.1Page對(duì)象5.2Response對(duì)象5.3Request對(duì)象5.4Server對(duì)象5.5ASP.NET狀態(tài)管理5.6實(shí)訓(xùn)使用Cookie

5.1Page對(duì)象5.1.1Page對(duì)象的常用屬性、方法和事件

1.Page對(duì)象的屬性5.1Page對(duì)象5.1.1Page對(duì)象的常用屬性、方法和事件

2.Page對(duì)象的常用方法和事件5.1Page對(duì)象5.1.2Web窗體頁面的生命周期1)初始化:該階段將觸發(fā)Page對(duì)象的Init事件,并執(zhí)行OnInit方法。該階段在Web窗體的生存周期內(nèi)僅此一次。2)加載視圖狀態(tài):該階段主要執(zhí)行LoadViewState()方法3)處理回發(fā)數(shù)據(jù):該階段主要執(zhí)行LoadPostData()方法,用來檢查客戶端發(fā)回的控件數(shù)據(jù)的狀態(tài)是否發(fā)生了變化。4)加載:該階段將觸發(fā)Load事件,并執(zhí)行Page_Load方法。5)預(yù)呈現(xiàn):該階段要處理在最終呈現(xiàn)之前所做的各種狀態(tài)更改。6)保存狀態(tài):該階段的任務(wù)是將當(dāng)前狀態(tài)寫入ViewState屬性。7)呈現(xiàn):該階段將對(duì)應(yīng)的HTML代碼寫入最終響應(yīng)的流中。8)處置:該階段將執(zhí)行Dispose方法,釋放占用的系統(tǒng)資源。9)卸載:這是Web窗體生命周期的最后一個(gè)階段,在這個(gè)階段中將觸發(fā)UnLoad事件,執(zhí)行OnUnLoad方法,以處理Web窗體在消亡前的最后處理。5.2Response對(duì)象5.2.1Response對(duì)象的常用屬性和方法

Response對(duì)象的常用屬性見下表。5.2Response對(duì)象5.2.1Response對(duì)象的常用屬性和方法

Response對(duì)象的常用方法見下表。

5.2Response對(duì)象5.2.2使用Response對(duì)象輸出信息到客戶端1.使用Write方法

Write方法的語法格式如下:

Response.Write(string);2.使用WriteFile方法

使用Response對(duì)象的WriteFile方法可以將指定的文件內(nèi)容直接寫入HTML輸出流。其語法格式如下:

Response.WriteFile(filename);5.2Response對(duì)象5.2.3使用Redirect方法實(shí)現(xiàn)頁面跳轉(zhuǎn)

Response對(duì)象的Redirect方法用于將客戶端重定向到新的URL,實(shí)現(xiàn)頁面間的跳轉(zhuǎn)。該方法的語法格式如下:

Response.Redirect(url[,endResponse])使用Response對(duì)象的Redirect方法時(shí)應(yīng)注意如下問題:1)使用該方法實(shí)現(xiàn)跳轉(zhuǎn)時(shí),瀏覽器地址欄中將顯示目標(biāo)URL。2)執(zhí)行該方法時(shí),重定向操作發(fā)生在客戶端,涉及到兩個(gè)不同頁面或兩個(gè)Web服務(wù)器之間的通信,第一階段是對(duì)原頁面的請求,第二階段是對(duì)目標(biāo)URL的請求。3)該方法執(zhí)行后內(nèi)部控件保存的所有信息將丟失,因此當(dāng)從A頁面跳轉(zhuǎn)到B頁面后,在頁面B中無法訪問A頁面提交的數(shù)據(jù)。若需從A頁面?zhèn)鬟f數(shù)據(jù)到B頁面,只能通過url參數(shù)中的“?”來實(shí)現(xiàn)。5.3

Request對(duì)象5.3.1Request對(duì)象的常用屬性和方法

1.Request對(duì)象的常用屬性

5.3

Request對(duì)象5.3.1Request對(duì)象的常用屬性和方法

2.Request對(duì)象的常用方法1)MapPath(VirtualPath):該方法將當(dāng)前請求的URL中的虛擬路徑VirtualPath映射到服務(wù)器上的物理路徑。參數(shù)VirtualPath用于指定當(dāng)前請求的虛擬路徑(可以是絕對(duì)路徑,也可以是相對(duì)路徑)。返回值為與VirtualPath對(duì)應(yīng)的服務(wù)器端物理路徑。2)SaveAs(filename,includeHeaders):該方法將客戶端的HTTP請求保存到磁盤。參數(shù)filename用于指定文件在服務(wù)器上保存的位置;布爾型參數(shù)includeHearders用于指示是否同時(shí)保存HTTP頭。

5.3

Request對(duì)象5.3.1Request對(duì)象的常用屬性和方法3.通過查詢字符串實(shí)現(xiàn)跨頁數(shù)據(jù)傳遞Request對(duì)象的QueryString屬性用于接收來自用戶請求URL地址中“?”后面的數(shù)據(jù),通常將這些數(shù)據(jù)稱為“查詢字符串”,也稱為“URL附加信息”,常被用來在不同網(wǎng)頁中傳遞數(shù)據(jù)。使用Response對(duì)象的Redirect屬性可以同時(shí)傳遞多個(gè)參數(shù),其語法格式如下:

Response.Redirect("目標(biāo)網(wǎng)頁?參數(shù)1&參數(shù)2&…&參數(shù)n");5.3

Request對(duì)象5.3.1Request對(duì)象的常用屬性和方法4.使用Browser屬性獲取客戶瀏覽器信息

Request對(duì)象的Browser屬性包含有眾多子屬性,用來返回客戶端瀏覽器的信息和客戶端操作系統(tǒng)的信息等。5.3

Request對(duì)象5.3.2處理HTML表單在Web窗體頁面中,往往包含有許多Web服務(wù)器控件(文本框、單選按鈕、復(fù)選框等)或HTML表單。這些控件的值存放在窗體變量中,當(dāng)用戶提交頁面時(shí),這些窗體變量被發(fā)送到服務(wù)器端。使用Request對(duì)象的Form屬性可以訪問被提交到服務(wù)器的窗體變量。其語法格式如下:

Request.Form[element|index]

Request對(duì)象的Browser屬性包含有眾多子屬性,用來返回客戶端瀏覽器的信息和客戶端操作系統(tǒng)的信息等。

參閱源代碼:ex5-15.4

Server對(duì)象5.4.1Server對(duì)象的常用屬性和方法

Server對(duì)象的常用屬性有:

MachineName屬性和ScriptTimeout屬性常用方法見下表。5.4

Server對(duì)象5.4.2Execute、Transfer和MapPath方法

1.Execute和Transfer方法

Server對(duì)象的Execute方法和Transfer方法都可以實(shí)現(xiàn)從當(dāng)前頁面跳轉(zhuǎn)到另一頁面的功能。但需要注意的是:Execute方法在新頁面中的程序執(zhí)行完畢后自動(dòng)返回到原頁面,繼續(xù)執(zhí)行后續(xù)代碼;而Transfer方法在執(zhí)行了跳轉(zhuǎn)后不再返回原頁面,后續(xù)語句也永遠(yuǎn)不會(huì)被執(zhí)行。但跳轉(zhuǎn)過程中Request、Session等對(duì)象中保存的信息不變,也就是說從A頁面使用Transfer方法跳轉(zhuǎn)到B頁面后,可以繼續(xù)使用A頁面中提交的數(shù)據(jù)。此外,由于Execute方法和Transfer方法都是在服務(wù)器端執(zhí)行的,客戶端瀏覽器并不知道已進(jìn)行了一次頁面跳轉(zhuǎn),所以其地址欄中的URL仍然是原頁面的數(shù)據(jù)。這一點(diǎn)與Response對(duì)象Redirect方法實(shí)現(xiàn)的頁面跳轉(zhuǎn)是不同的。5.4

Server對(duì)象5.4.3Execute、Transfer和MapPath方法

2.MapPath方法在Web應(yīng)用程序執(zhí)行時(shí)可能需要訪問存放在服務(wù)器中的某一文件,此時(shí)就需要將文件的虛擬路徑轉(zhuǎn)換成服務(wù)器端對(duì)應(yīng)的物理路徑。而Server對(duì)象的MapPath方法就是用來完成這一任務(wù)的。MapPath()方法的語法格式為:

Server.MapPath(虛擬路徑);5.5ASP.NET的狀態(tài)管理5.5.1創(chuàng)建和使用Cookie對(duì)象

1.創(chuàng)建Cookie瀏覽器負(fù)責(zé)管理客戶機(jī)上的Cookie,Cookie需要通過Response對(duì)象發(fā)送到瀏覽器,發(fā)送前需要將其添加到Cookie集合中。Cookie有3個(gè)重要的參數(shù):名稱、值和有效期。如果沒有設(shè)置Cookie的有效期,它仍可被創(chuàng)建,但不會(huì)被Response對(duì)象發(fā)送到客戶端,而是將其作為用戶會(huì)話的一部分進(jìn)行維護(hù),當(dāng)用戶關(guān)閉瀏覽器(會(huì)話結(jié)束)時(shí)該Cookie將被釋放。這種非永久性Cookie十分適合用來保存只需要短暫保存或由于安全原因不能保存在客戶機(jī)上的信息。創(chuàng)建Cookie的語法格式如下:

Response.Cookies["名稱"].Value=值;

5.5ASP.NET的狀態(tài)管理5.5.1創(chuàng)建和使用Cookie對(duì)象

2.讀取Cookie

使用Request對(duì)象的Cookies屬性可以讀取保存在客戶機(jī)上指定Cookie的值,其語法格式如下:變量=Request.Cookies["名稱"].Value;5.5ASP.NET的狀態(tài)管理5.5.1創(chuàng)建和使用Cookie對(duì)象

3.使用多值Cookie

例如,下列語句創(chuàng)建了一個(gè)名為“Person”的Cookie集合,其中包含有3個(gè)子屬性,對(duì)于瀏覽器來說,只相當(dāng)于一條Cookie。

使用下列語句可從上述多值Cookie中讀取數(shù)據(jù)。參閱源代碼:ex5-25.5ASP.NET的狀態(tài)管理5.5.2創(chuàng)建和使用Session對(duì)象

1.Session的工作原理

當(dāng)用戶請求一個(gè)ASP.NET頁面時(shí),系統(tǒng)將自動(dòng)創(chuàng)建一個(gè)Session,退出應(yīng)用程序時(shí)該會(huì)話撤銷。系統(tǒng)創(chuàng)建會(huì)話時(shí)將為其分配一個(gè)標(biāo)識(shí)(SessionID),以實(shí)現(xiàn)對(duì)會(huì)話進(jìn)行管理和跟蹤。

SessionID具有的隨機(jī)性和惟一性保證了會(huì)話不會(huì)沖突,也不能利用新SessionID推算出現(xiàn)有會(huì)話的SessionID。通常情況下,SessionID會(huì)存放在客戶端的Cookies內(nèi),當(dāng)用戶訪問ASP.NET網(wǎng)站中任何一個(gè)頁面時(shí),SessionID將通過Cookie傳遞到服務(wù)器端,服務(wù)器根據(jù)SessionID的值對(duì)用戶進(jìn)行識(shí)別,以返回對(duì)應(yīng)該用戶的Session信息。5.5ASP.NET的狀態(tài)管理5.5.2創(chuàng)建和使用Session對(duì)象

2.Session對(duì)象的常用屬性及方法Session對(duì)象的常用屬性見下表。5.5ASP.NET的狀態(tài)管理5.5.2創(chuàng)建和使用Session對(duì)象

2.Session對(duì)象的常用屬性及方法Session對(duì)象的常用方法見下表。5.5ASP.NET的狀態(tài)管理5.5.2創(chuàng)建和使用Session對(duì)象

3.使用Session對(duì)象(1)將數(shù)據(jù)保存到Session對(duì)象中

向Session對(duì)象中存入數(shù)據(jù)的方法十分簡單,下面的語句使用戶單擊按鈕時(shí)將3個(gè)字符串分別存入2個(gè)Session中。5.5ASP.NET的狀態(tài)管理5.5.2創(chuàng)建和使用Session對(duì)象

3.使用Session對(duì)象(2)從Session對(duì)象中取出數(shù)據(jù)下面的語句表示了當(dāng)目標(biāo)頁面裝入時(shí)如何從Session對(duì)象中取出數(shù)據(jù)的方法。protectedvoidPage_Load(objectsender,EventArgse){Label1.Text=(string)(Session["MyVal1"]);Label2.Text=Session[“MyVal2”].ToString();}5.5ASP.NET的狀態(tài)管理5.5.3使用PreviousPage屬性

1.PreviousPage與Session的比較

PreviousPage與Session相似,都可以實(shí)現(xiàn)跨頁數(shù)據(jù)傳遞。二者主要的不同有以下幾點(diǎn):①PreviousPage主要用來傳遞控件的屬性值。Session不僅可以傳遞控件屬性值,也可以方便地傳遞變量值。②PreviousPage與Session相比不需要一直占用服務(wù)器內(nèi)存資源,特別適合跨頁面?zhèn)鬟f較多數(shù)據(jù)的情況。2.PreviousPage使用示例

參閱源代碼:ex5-45.6實(shí)訓(xùn)使用Cookie5.6.1實(shí)訓(xùn)目的通過實(shí)訓(xùn)進(jìn)一步理解Cookie的概念及使用方法。5.6.2實(shí)訓(xùn)要求設(shè)計(jì)一個(gè)ASP.NET網(wǎng)站,向Default.aspx頁面中添加一個(gè)按鈕控件和一個(gè)標(biāo)簽控件。

頁面首次加載時(shí)創(chuàng)建一個(gè)名為“MyCookie”,有效期為1分鐘的Cookie,并為其賦值“OK”,標(biāo)簽中顯示Cookie到期時(shí)間和值。

在Cookie有效期內(nèi)單擊按鈕,標(biāo)簽中顯示“Cookie有效”和Cookie值。過期后單擊按鈕,標(biāo)簽中顯示“Cookie已失效”。第6章使用ASP.NETAJAX本章講述的主要內(nèi)容6.1Ajax和ASP.NETAJAX概述6.2ASP.NETAJAX基本控件6.3ASP.NETAJAX控件工具包6.4實(shí)訓(xùn)設(shè)計(jì)一個(gè)限時(shí)在線考試系統(tǒng)

6.1Ajax和ASP.NETAJAX概述6.1.1Ajax的概念A(yù)jax主要包括以下一些內(nèi)容:1)使用HTML+CSS來表示信息。2)使用JavaScript操作(文檔對(duì)象模型)。3)使用XML和XSLT(EXtensibleStylesheetLanguageTransformations,擴(kuò)展樣式表轉(zhuǎn)換)進(jìn)行數(shù)據(jù)交換及操作。4)使用XmlHttpRequest對(duì)象與Web服務(wù)器進(jìn)行異步數(shù)據(jù)交換。5)使用JavaScript將各部分內(nèi)容綁定在一起。6.1Ajax和ASP.NETAJAX概述6.1.1Ajax的概念

Ajax的實(shí)現(xiàn)基本原理是,當(dāng)用戶與瀏覽器中的頁面進(jìn)行交互時(shí),將觸發(fā)頁面元素對(duì)象的相應(yīng)事件,客戶端捕獲這些事件后,如果需要將交互動(dòng)作引起的邏輯實(shí)現(xiàn)提交給服務(wù)器進(jìn)行處理,則將要處理的數(shù)據(jù)(包括狀態(tài)描述)轉(zhuǎn)換為XML格式的字符串,并使用異步傳輸方式提交給服務(wù)器。服務(wù)器處理結(jié)束后,同樣使用XML格式和異步傳輸方式將處理結(jié)果送回??蛻舳藦姆祷亟Y(jié)果中提取需要的部分,交由JavaScript對(duì)網(wǎng)頁進(jìn)行“局部更新”,而不是刷新整個(gè)頁面。6.1Ajax和ASP.NETAJAX概述6.1.2ASP.NETAJAX

2007年微軟公司真正推出了具有Ajax風(fēng)格的,方便的異步編程模型,這就是ASP.NETAJAX。

注意,為了與其他Ajax技術(shù)區(qū)分,微軟將其全部使用大寫,并在前面加上了“ASP.NET”。ASP.NETAJAX的正式命名為“ASP.NETAJAXExtensions”和“MicrosoftAJAXLibrary”。

ASP.NETAJAXExtensions提供了與ASP.NET高度集成的服務(wù)器端功能,包括客戶端數(shù)據(jù)綁定、DHTML動(dòng)畫和行為等,同時(shí)使用ScriptManager控件和UpdatePanel控件實(shí)現(xiàn)客戶端腳本管理和對(duì)客戶端回傳(post)的攔截,這樣一來開發(fā)人員就可以在現(xiàn)有ASP.NET應(yīng)用程序中方便的使用ASP.NETAJAX了。6.2ASP.NETAJAX控件6.2.1ScriptManager和ScriptManagerProxy控件

1.ScriptManager的常用屬性和方法

ScriptManager控件常用屬性見下表。

6.2ASP.NETAJAX控件6.2.1ScriptManager和ScriptManagerProxy控件

1.ScriptManager的常用屬性和方法

ScriptManager控件常用方法見下表。

6.2ASP.NETAJAX控件6.2.1ScriptManager和ScriptManagerProxy控件

2.使用ScriptManager控件注冊客戶端腳本

(1)使用RegisterClientScriptBlock方法

RegisterClientScriptBlock方法是一個(gè)靜態(tài)方法,用于動(dòng)態(tài)地向網(wǎng)頁中添加客戶端腳本塊。該方法的重載形式有以下兩種:6.2常用ASP.NETAJAX控件6.2.1ScriptManager和ScriptManagerProxy控件

2.使用ScriptManager控件注冊客戶端腳本

(2)使用RegisterStartupScript方法

RegisterStartupScript()方法用于在UpdatePanel控件中注冊啟動(dòng)時(shí)立即執(zhí)行的JavaScript腳本塊,是一種AutoRun類型的自啟動(dòng)腳本。類似于常用的<bodyonload="f()">中的f()函數(shù)。6.2ASP.NETAJAX控件6.2.2UpdatePanel控件

1.UpdatePanel控件的常用屬性

(1)Triggers屬性:表示可以導(dǎo)致UpdatePanel控件更新的觸發(fā)器集合。

(2)ChildrenAsTrigger屬性:該屬性為一個(gè)bool值,用來說明UpdatePanel控件的子控件引起的回發(fā)是否能導(dǎo)致Update-Panel控件的更新。

(3)UpdateMode屬性:UpdateMode屬性表示UpdatPanel控件的更新模式。

(4)ContentTemplate屬性:ContentTemplate屬性用來定義UpdatePanel包含的內(nèi)容。6.2ASP.NETAJAX控件6.2.2UpdatePanel控件

2.頁面的局部更新和條件更新

ScriptManager控件與UpdatePanel控件配合,可以在不必編寫任何JavaScript代碼的情況下實(shí)現(xiàn)頁面的局部更新和條件更新。

參閱源代碼:ex6-16.2ASP.NETAJAX控件6.2.3UpdateProgress控件

UpdateProgress控件可以與UpdatePanel控件配合使用,在UpdatePanel頁面內(nèi)容進(jìn)行更新時(shí)通過該控件顯示一些提示信息,這些信息可以是一段文字、傳統(tǒng)的進(jìn)度條或一段動(dòng)畫等。當(dāng)更新結(jié)束后,提示信息自動(dòng)消失。UpdateProgress控件主要用于更新數(shù)據(jù)量較大的場合,顯示提示信息以避免用戶執(zhí)行了操作后頁面較長時(shí)間無反應(yīng)的尷尬。UpdateProgress控件的常用屬性有:①AssociatedUpdatePanel②DisplayAfter③DynamicLayout④ProgressTemplate6.2ASP.NETAJAX控件6.2.4Timer控件1.Timer控件的常用屬性和事件(1)Interval屬性Interval屬性用于設(shè)置頁面向服務(wù)器發(fā)送回傳的,以毫秒為單位的時(shí)間間隔,默認(rèn)值為60000毫秒。(2)Enable屬性Enable屬性與其他標(biāo)準(zhǔn)控件的Enable屬性相同,用來決定Timer控件是否可用。(3)Tick事件Tick事件是Timer控件周期性觸發(fā)的事件,寫在該事件過程中的代碼能被應(yīng)用程序周期性的自動(dòng)執(zhí)行。2.使用Timer控件

參閱源代碼:ex6-26.3ASP.NETAJAX控件工具包6.3.1安裝ASP.NETAJAX控件工具包

ASP.NETAJAXControlToolkit并沒有包含在VisualStudio2015中,使用前需要從Internet中下載并安裝整合到VisualSt

溫馨提示

  • 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論