ASPNE3.0完整版課件_第1頁(yè)
ASPNE3.0完整版課件_第2頁(yè)
ASPNE3.0完整版課件_第3頁(yè)
ASPNE3.0完整版課件_第4頁(yè)
ASPNE3.0完整版課件_第5頁(yè)
已閱讀5頁(yè),還剩553頁(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)介

1、第1章 .ASP.NET入門ASP.NET是一種用于創(chuàng)建Web應(yīng)用程序的編程模型,可以使用C#或者是VB.NET、J#進(jìn)行ASP.NET應(yīng)用程序的開(kāi)發(fā)。NET框架從1.0開(kāi)始,經(jīng)過(guò)1.0、2.0、3.0現(xiàn)在已經(jīng)到了3.5,其中每一次升級(jí)都是對(duì)前一版本的修補(bǔ)與擴(kuò)展。ASP.NET 3.5是基于.NET 3.5框架的動(dòng)態(tài)頁(yè)面開(kāi)發(fā)技術(shù),其秉承了ASP.NET 2.0的組件開(kāi)發(fā)技術(shù),提供了Web開(kāi)發(fā)所需要的大部分組件,如登錄、驗(yàn)證、數(shù)據(jù)源管理、數(shù)據(jù)顯示、網(wǎng)頁(yè)導(dǎo)航設(shè)計(jì)等。開(kāi)發(fā)人員使用ASP.NET 3.5,不僅可以開(kāi)發(fā)出美觀的界面,還可以通過(guò)后臺(tái)技術(shù),實(shí)現(xiàn)數(shù)據(jù)管理、動(dòng)態(tài)頁(yè)面更新等新技術(shù)。章節(jié)內(nèi)容1.1A

2、SP.NET概述 1.2VS.Net2008安裝與運(yùn)行1.3Visual Studio 2008與Visual Web Developer 1.4第一個(gè)ASP.NET網(wǎng)站 1.1ASP.NET概述 微軟的.NET平臺(tái)其核心是一系列新的集合,稱為.NET Framework,我們通常會(huì)查閱的Framework就是.NET Framework。這個(gè)框架集提供了一個(gè)既可快速開(kāi)發(fā)基于Windows的程序,也可快速開(kāi)發(fā)Web應(yīng)用程序的平臺(tái)。.NET Framework具有兩個(gè)主要組成部分,即公共語(yǔ)言運(yùn)行庫(kù)(CLR)和.NET Framework 類庫(kù)(也叫框架類庫(kù)FCL)。 1.1.1.NET Fram

3、ework的基本概念 CLR是為.NET Framework所編寫的代碼執(zhí)行環(huán)境。CLR管理著.NET代碼的執(zhí)行,包括內(nèi)存的分配和垃圾的回收(避免內(nèi)存泄露問(wèn)題)、安全性(包括對(duì)不同來(lái)源的代碼應(yīng)用不同的信任度)、線程管理、強(qiáng)類型和其他一些任務(wù)。 .NET Framework類庫(kù)是一系列可重用的面向?qū)ο蟮念?,提供基本平臺(tái)的功能,從存取數(shù)據(jù)庫(kù)的類ADO.NET,到文件系統(tǒng)模塊的類(包括文件、目錄和流等類),再到允許我們方便地實(shí)現(xiàn)DNS解析。開(kāi)發(fā)者們可以直接使用這些基類或者繼承這些類來(lái)實(shí)現(xiàn)一些定制的功能。 1.1.2公共語(yǔ)言運(yùn)行庫(kù) 公共語(yǔ)言運(yùn)行庫(kù)包括管理內(nèi)存、線程執(zhí)行、代碼執(zhí)行、代碼安全驗(yàn)證、編譯以及

4、其他系統(tǒng)服務(wù)。使用基于公共語(yǔ)言運(yùn)行庫(kù)的語(yǔ)言編譯器開(kāi)發(fā)的代碼稱為托管代碼。托管代碼具有許多優(yōu)點(diǎn),如跨語(yǔ)言集成、跨語(yǔ)言異常處理、增強(qiáng)的安全性、版本控制和部署支持等。這些功能是在公共語(yǔ)言運(yùn)行庫(kù)上運(yùn)行的托管代碼所固有的。1.1.3.NET Framework 3.5概述 Multitargeting VS2008有一個(gè)新的簡(jiǎn)單而強(qiáng)大的功能multitargeting。它具有針對(duì)不同的.Net框架版本(2.0、3.0和3.5)創(chuàng)建項(xiàng)目的能力,這意味著,VS2008可以與VS2005同時(shí)安裝。同時(shí)你可以不再需要VS2005,因?yàn)閂S2008提供的功能更強(qiáng)大。LINQVS2008最大的特點(diǎn)是LINQ(語(yǔ)言整

5、合查詢)。LINQ是一個(gè)新的范例,其用統(tǒng)一的方式查詢數(shù)據(jù)來(lái)源,如在內(nèi)存中的對(duì)象、XML模式、SQL查詢結(jié)果、數(shù)據(jù)集合或任何其他(因?yàn)長(zhǎng)INQ架構(gòu)已被完全擴(kuò)展)。1.1.3.NET Framework 3.5概述 ASP.NET AJAX 對(duì)于網(wǎng)站開(kāi)發(fā)人員來(lái)說(shuō),ASP.NET AJAX改進(jìn)后可以獨(dú)立出來(lái)。ASP.NET 3.5包括3個(gè)新增的控件,如ListView、DataPager和LinqDataSource。改進(jìn)后的IDE也可以用于ASP.NET 2.0項(xiàng)目,如支持JavaScript的動(dòng)態(tài)智能感知和調(diào)試,一個(gè)新的CSS引擎和一個(gè)支持嵌套母版頁(yè)的HTML設(shè)計(jì)器。WPFWPF(Windows

6、 Presentation Foundation)是一個(gè)更有生產(chǎn)力的、更統(tǒng)一的用來(lái)管理用戶界面、文檔及多媒體等的模型,是基于.NET 3.0的產(chǎn)品。作為下一代的圖形系統(tǒng),WPF所帶來(lái)的新概念、新技術(shù)也相當(dāng)龐大、復(fù)雜。1.1.3.NET Framework 3.5概述 WCFWCF(Windows Communication Foundation)是使用托管代碼建立和運(yùn)行面向服務(wù)(Service Oriented)應(yīng)用程序的統(tǒng)一框架。它使得開(kāi)發(fā)者能夠建立一個(gè)跨平臺(tái)、安全、可信賴、事務(wù)性的解決方案,且能與已有系統(tǒng)兼容協(xié)作。WCF是微軟分布式應(yīng)用程序開(kāi)發(fā)的集大成者,它整合了.NET平臺(tái)下所有的和分布

7、式系統(tǒng)有關(guān)的技術(shù)。以通信范圍而論,它可以跨進(jìn)程、跨機(jī)器、跨子網(wǎng)、企業(yè)網(wǎng)乃至于Internet;以宿主(Host)程序而論,它可以以ASP.NET、EXE、WPF、Windows Forms、NT Service、COM+作為宿主。微軟將所有與此相關(guān)的技術(shù)要素都包含在內(nèi),掌握了WCF就相當(dāng)于掌握了叩開(kāi)SOA大門的鑰匙。.Net框架的主要組成部分1.2 VS.Net2008安裝與運(yùn)行安裝要求最低要求:1.6GHz CPU、384 MB RAM、1024*768 顯示器、5400RPM 硬盤。推薦:2.2GHZ 或以上的CPU、1024 MB 或以上的RAM、1280*1024顯示器、7200RPM

8、或更高轉(zhuǎn)速的硬盤。在Windows Vista上的運(yùn)行要求:2.4GHz CPU、768MB RAM。第一次運(yùn)行Visual Studio,會(huì)打開(kāi)“選擇默認(rèn)環(huán)境設(shè)置”窗口,用于提示設(shè)置默認(rèn)環(huán)境。這里,在“選擇默認(rèn)環(huán)境設(shè)置”列表框中選擇“Visual C#開(kāi)發(fā)設(shè)置”,再單擊“啟動(dòng)Visual Studio”按鈕。1.3Visual Studio 2008與Visual Web Developer VS2008是針對(duì)ASP.NET 3.5開(kāi)發(fā)平臺(tái)推出的綜合開(kāi)發(fā)環(huán)境,而Visual Web Developer則是VS2008中用來(lái)開(kāi)發(fā)Web應(yīng)用程序的一個(gè)單元模塊。1.4第一個(gè)ASP.NET網(wǎng)站 首先

9、打開(kāi)VS2008,然后單擊菜單欄中的“文件”“新建”“網(wǎng)站”命令,打開(kāi)如圖所示的“新建網(wǎng)站”窗口。1.4.1頁(yè)面設(shè)計(jì)為了使顯示效果更加直觀,我們向頁(yè)面中插入一個(gè)表格,并設(shè)置表格的布局為居中,其HTML代碼如下: 1.4.2功能實(shí)現(xiàn)打開(kāi)default.aspx.cs文件,在protected void Page Load(object sender, EventArgs e)方法中輸入以下代碼:1 protected void Page_Load(object sender, EventArgs e)2 3 lbhello.Text = hello world!;4 1.4.3運(yùn)行查看效果右擊“

10、解決方案”中的default.aspx選項(xiàng),在右鍵菜單中單擊“在瀏覽器中查看”命令,程序的運(yùn)行結(jié)果如圖所示。第2章 C#語(yǔ)言基礎(chǔ)ASP.NET框架中提供了多種語(yǔ)言支持,其中C#語(yǔ)言是使用ASP.NET創(chuàng)建應(yīng)用程序的基礎(chǔ)語(yǔ)言之一。C#語(yǔ)言是微軟為ASP.NET量身定做的語(yǔ)言,具有良好的兼容性和可擴(kuò)展性。C#語(yǔ)言是一種強(qiáng)大的面向?qū)ο笳Z(yǔ)言,支持類、接口、封裝、抽象等功能,代碼健壯、易于調(diào)試。開(kāi)發(fā)人員可以使用C#語(yǔ)言創(chuàng)建任何一種.NET應(yīng)用程序。本書所有代碼都是使用C#來(lái)編寫,因此掌握C#的基本語(yǔ)法,是ASP.NET入門的第一步。章節(jié)內(nèi)容2.1C#語(yǔ)言的特點(diǎn) 2.2C#程序設(shè)計(jì)基礎(chǔ) 2.3C#語(yǔ)言面向

11、對(duì)象的特性 2.4C#的特性2.1C#語(yǔ)言的特點(diǎn)簡(jiǎn)單現(xiàn)代面向?qū)ο蟀姹究刂萍嫒蒽`活2.2 C#程序設(shè)計(jì)基礎(chǔ)C#的程序結(jié)構(gòu)使用C#語(yǔ)言來(lái)編寫應(yīng)用程序時(shí),每個(gè)文件可以包含零個(gè)或零個(gè)以上的命名空間。一個(gè)命名空間除了可以包含其他命名空間外,還可以包含類、結(jié)構(gòu)、接口、枚舉、委托等類型。C#中程序結(jié)構(gòu)的關(guān)鍵概念為程序、命名空間、類型、成員和程序集。在程序中可以聲明類型,類型中可以包含成員,而最典型的類型的使用就是類和接口。成員可以包含字段、方法、屬性和事件。當(dāng)C#程序被編譯時(shí),它們被物理地打包到程序集中。程序集的文件擴(kuò)展名一般為.exe或者.dll,這取決于它們是實(shí)現(xiàn)為應(yīng)用程序(application),還

12、是類庫(kù)(library)。2.2.1C#語(yǔ)言的數(shù)據(jù)類型值類型類型含義Sbyte代表有符號(hào)的8位整數(shù),數(shù)值范圍從-128127Byte代表無(wú)符號(hào)的8位整數(shù),數(shù)值范圍從0255Short代表有符號(hào)的16位整數(shù),范圍從-32,76832,767ushort代表無(wú)符號(hào)的16位整數(shù),范圍從065,535 Int代表有符號(hào)的32位整數(shù),范圍從-21474836482147483648uint代表無(wú)符號(hào)的32位整數(shù),范圍從04294967295Long代表有符號(hào)的64位整數(shù),范圍從-92233720368547758089223372036854775808Ulong代表無(wú)符號(hào)的64位整數(shù),范圍從01844

13、67440737095516152.2.2C#語(yǔ)言的數(shù)據(jù)類型引用類型引用類型包括類類型、接口類型、代表類型和數(shù)組類型。引用類型的變量又稱為對(duì)象,是可存儲(chǔ)對(duì)實(shí)際數(shù)據(jù)的引用。如果聲明了一個(gè)引用類型的變量卻不給它賦給任何對(duì)象,那么它的默認(rèn)值就是null。而數(shù)值類型的值是不能為null。2.2.3變量變量變量名必須以字母開(kāi)頭。變量名只能由字母、數(shù)字和下劃線組成,而且不能包含空格、標(biāo)點(diǎn)符號(hào)、運(yùn)算符等其他符號(hào)。 變量名不能與C#中的關(guān)鍵字名稱相同。 變量名不能與C#中的庫(kù)函數(shù)名稱相同。2.2.4變量變量名必須以字母開(kāi)頭。變量名只能由字母、數(shù)字和下劃線組成,而不能包含空格、標(biāo)點(diǎn)符號(hào)、運(yùn)算符等其他符號(hào)。 變量

14、名不能與C#中的關(guān)鍵字名稱相同。 變量名不能與C#中的庫(kù)函數(shù)名稱相同。2.2.3運(yùn)算符在C#語(yǔ)言中,和其他編程語(yǔ)言一樣,具有多種運(yùn)算符。在C#語(yǔ)言中,運(yùn)算符大體分為6種:算術(shù)運(yùn)算符、條件運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符、賦值運(yùn)算符和成員訪問(wèn)運(yùn)算符。2.2.3運(yùn)算符算術(shù)運(yùn)算符表類別運(yùn)算符 說(shuō)明表達(dá)式算數(shù)運(yùn)算符+執(zhí)行加法運(yùn)算(如果兩個(gè)操作數(shù)是字符串,則該運(yùn)算符用作字符串連接運(yùn)算符,將一個(gè)字符串添加到另一個(gè)字符串的末尾)操作數(shù)1+操作數(shù)2-執(zhí)行減法運(yùn)算操作數(shù)1-操作數(shù)2算數(shù)運(yùn)算符*執(zhí)行乘法運(yùn)算操作數(shù)1*操作數(shù)2/執(zhí)行除法運(yùn)算操作數(shù)1/操作數(shù)2%獲得進(jìn)行除法運(yùn)算后的余數(shù)操作數(shù)1%操作數(shù)2+將操作數(shù)加1操

15、作數(shù)+或+操作數(shù)-將操作數(shù)減1操作數(shù)-或-操作數(shù)將一個(gè)數(shù)按位取反操作數(shù)2.2.3運(yùn)算符關(guān)系運(yùn)算符 類別運(yùn)算符說(shuō)明表達(dá)式關(guān)系運(yùn)算符檢查一個(gè)數(shù)是否大于另一個(gè)數(shù)操作數(shù)1操作數(shù)2檢查一個(gè)數(shù)是否小于另一個(gè)數(shù)操作數(shù)1=檢查一個(gè)數(shù)是否大于或等于另一個(gè)數(shù)操作數(shù)1=操作數(shù)2=檢查一個(gè)數(shù)是否小于或等于另一個(gè)數(shù)操作數(shù)1=操作數(shù)2=檢查兩個(gè)值是否相等操作數(shù)1=操作數(shù)2!=檢查兩個(gè)值是否不相等操作數(shù)1!=操作數(shù)22.2.3運(yùn)算符其他運(yùn)算符類別運(yùn)算符說(shuō)明表達(dá)式成員訪問(wèn)運(yùn)算符.用于訪問(wèn)數(shù)據(jù)結(jié)構(gòu)的成員數(shù)據(jù)結(jié)構(gòu).成員賦值運(yùn)算符=給變量賦值操作數(shù)1=操作數(shù)2邏輯運(yùn)算符&對(duì)兩個(gè)表達(dá)式執(zhí)行邏輯“與”運(yùn)算操作數(shù)1&操作數(shù)2|對(duì)兩個(gè)表達(dá)

16、式執(zhí)行邏輯“或”運(yùn)算操作數(shù)1|操作數(shù)2!對(duì)兩個(gè)表達(dá)式執(zhí)行邏輯“非”運(yùn)算!操作數(shù)()將操作數(shù)強(qiáng)制轉(zhuǎn)換為給定的數(shù)據(jù)類型(數(shù)據(jù)類型)操作數(shù)條件運(yùn)算符(三元運(yùn)算符)?:檢查給出的第一個(gè)表達(dá)式是否為真。如果為真,則計(jì)算操作數(shù)1,否則計(jì)算操作數(shù)2。這是唯一帶有3個(gè)操作數(shù)的運(yùn)算符表達(dá)式:操作數(shù)1:操作數(shù)22.2.3運(yùn)算符運(yùn)算符優(yōu)先級(jí)運(yùn)算符類型運(yùn)算符元運(yùn)算符X.y,f(x),ax,x+,x-,new,typeof,checked,unchecked一元運(yùn)算符+,-,!,+x,-x,(T)x算術(shù)運(yùn)算符*,/,%位運(yùn)算符,&,|,關(guān)系運(yùn)算符,=,is,as邏輯運(yùn)算符&,|條件運(yùn)算符&,|,?賦值運(yùn)算符=,+=,-

17、=,*=,/=,=,&=,=,|=2.2.4語(yǔ)句 選擇語(yǔ)句循環(huán)語(yǔ)句2.2.4語(yǔ)句選擇語(yǔ)句選擇語(yǔ)句中,程序會(huì)根據(jù)條件表達(dá)式的值來(lái)判斷程序?qū)⒁獔?zhí)行的代碼塊,常用的條件語(yǔ)句有if、if else、if else if、switch等。2.2.4選擇語(yǔ)句ifelseC#中的ifelse語(yǔ)句的語(yǔ)法結(jié)構(gòu)如下。語(yǔ)法格式為: if(條件)執(zhí)行語(yǔ)句;或if(條件)執(zhí)行語(yǔ)句1;else執(zhí)行語(yǔ)句2; 2.2.4選擇語(yǔ)句switchcase要實(shí)現(xiàn)多重分支判斷,一般采用switchcase語(yǔ)句。switchcase語(yǔ)句可以根據(jù)條件從一組不同的分支中選擇一個(gè)來(lái)執(zhí)行。switch(條件)case 常數(shù)表達(dá)式1:執(zhí)行語(yǔ)句;b

18、reak;case 常數(shù)表達(dá)式2:執(zhí)行語(yǔ)句;break;case 常數(shù)表達(dá)式3:執(zhí)行語(yǔ)句;break;default:默認(rèn)的處理語(yǔ)句;break; 2.2.4語(yǔ)句循環(huán)語(yǔ)句在C#語(yǔ)言中提供的循環(huán)語(yǔ)句,主要有for、while、do while、foreach等。這些循環(huán)語(yǔ)句可以充分解決程序開(kāi)發(fā)過(guò)程中,需要重復(fù)循環(huán)才能實(shí)現(xiàn)的問(wèn)題。循環(huán)語(yǔ)句能夠減少代碼量,避免重復(fù)輸入相同的代碼行,也能夠提高應(yīng)用程序的可讀性。2.2.4循環(huán)語(yǔ)句for循環(huán)for語(yǔ)句一般用于已知重復(fù)執(zhí)行次數(shù)的循環(huán),是程序開(kāi)發(fā)中常用的循環(huán)條件之一。當(dāng)for循環(huán)表達(dá)式中的條件為true時(shí),就會(huì)一直循環(huán)代碼塊。因?yàn)?,循環(huán)的次數(shù)是在執(zhí)行循環(huán)語(yǔ)句

19、之前計(jì)算的,所以for循環(huán)又稱作預(yù)測(cè)式循環(huán);當(dāng)for循環(huán)表達(dá)式中的條件為false時(shí),for循環(huán)會(huì)結(jié)束循環(huán)并跳出。for循環(huán)的語(yǔ)法格式如下。for(初始變量;循環(huán)條件;計(jì)數(shù)器)循環(huán)語(yǔ)句; 2.2.4循環(huán)語(yǔ)句while循環(huán)while語(yǔ)句同for語(yǔ)句一樣都可以執(zhí)行循環(huán),但是while語(yǔ)句的使用更加靈活,開(kāi)發(fā)人員可以在代碼塊執(zhí)行前判斷條件,也可以在代碼塊執(zhí)行一次后再進(jìn)行判斷條件。while語(yǔ)句略帶有if語(yǔ)句的特點(diǎn),同樣也是經(jīng)常使用的循環(huán)語(yǔ)句。while循環(huán)語(yǔ)句的語(yǔ)法格式如下。while(循環(huán)條件)循環(huán)語(yǔ)句; 2.2.4循環(huán)語(yǔ)句dowhile循環(huán)do while循環(huán)其實(shí)是while循環(huán)的一種特殊形式,

20、區(qū)別在于do while循環(huán)會(huì)先執(zhí)行一次循環(huán)語(yǔ)句,然后再判斷while中的條件,這種循環(huán)稱為后測(cè)試循環(huán)。do while 循環(huán)語(yǔ)句的語(yǔ)法格式如下。 do循環(huán)語(yǔ)句;while(循環(huán)條件)2.2.4循環(huán)語(yǔ)句foreach循環(huán)foreach循環(huán)是for循環(huán)的一種特殊表現(xiàn)形式,如果想重復(fù)集合或者數(shù)組中的所有條目,使用foreach是很好的解決方案。foreach語(yǔ)句的語(yǔ)法格式如下。foreach(類型 變量名 in 集合) 循環(huán)語(yǔ)句; 2.3 C#語(yǔ)言面向?qū)ο蟮奶匦?類聲明構(gòu)造函數(shù)與析構(gòu)函數(shù)方法2.3.1 類聲明C#是面向?qū)ο蟮木幊陶Z(yǔ)言。在面向?qū)ο箝_(kāi)發(fā)當(dāng)中,不可避免地要?jiǎng)?chuàng)建一個(gè)類?!邦悺笔且环N構(gòu)造,通

21、過(guò)使用該構(gòu)造,開(kāi)發(fā)人員可以將其他類型的變量、方法和事件組合在一起,從而創(chuàng)建自己的自定義類型。在C#中使用關(guān)鍵字class來(lái)聲明類,聲明形式如下。類修飾符 class 【類名】 : 【基類或接口】 【類體】 ;2.3.1 類聲明在C#中聲明新類時(shí),其類名的定義需要遵循一定的命名規(guī)則,類名最好能體現(xiàn)類的含義和用途。類名一般采用第一個(gè)字母大寫的名詞,也可以采用多個(gè)詞構(gòu)成的組合詞。如果類名由多個(gè)詞組成,則每一個(gè)詞的第一個(gè)字母都應(yīng)該大寫。另外,在同一個(gè)命名空間內(nèi),類名不能重復(fù)。2.3.1 類聲明類的訪問(wèn)權(quán)限Public:使用public關(guān)鍵字修飾的類,具有最高訪問(wèn)級(jí)別,它的任何對(duì)象或者其他的類都能對(duì)pu

22、blic關(guān)鍵字所修飾的類或類成員進(jìn)行訪問(wèn)。Private:關(guān)鍵字所定義的訪問(wèn)權(quán)限是受限制的,在C#語(yǔ)言中具有最低的訪問(wèn)級(jí)別,這樣可以保證類和類成員的安全,同時(shí)也限制了其他類或?qū)ο髮?duì)它的訪問(wèn)。私有成員只有在聲明它們的類之后才能訪問(wèn) 。Protected:字段具有保護(hù)類中字段的功能,能夠保證類和類成員的安全性,也能夠限制其他類或?qū)ο髮?duì)它的訪問(wèn)。但是與private不同的是,protected能夠在類和類的派生類中使用,比private具有更高的訪問(wèn)級(jí)別,又比public擁有更低的訪問(wèn)級(jí)別,保證了類的安全性。 internal字段修飾的類或類成員,只有在同一程序集的文件中,內(nèi)部類型或成員才可以訪問(wèn)。

23、2.3.1 類聲明類的成員 字段:通常用來(lái)存儲(chǔ)類中對(duì)象的值。屬性:屬性可以為字段提供保護(hù),避免字段在用戶創(chuàng)建的對(duì)象不知情的情況下被更改。方法:方法是由“”組合在一起的代碼塊,用來(lái)接收輸入數(shù)據(jù),在方法體內(nèi)進(jìn)行運(yùn)算處理,并返回處理結(jié)果。事件:事件是一個(gè)對(duì)象向其他對(duì)象提供有關(guān)事件發(fā)生的通知的一種方式。2.3.2 構(gòu)造函數(shù)與析構(gòu)函數(shù) 構(gòu)造函數(shù)構(gòu)造函數(shù)不聲明返回類型(甚至也不能使用void),也不能返回值。一般地,構(gòu)造函數(shù)總是public類型的。private 類型的構(gòu)造函數(shù),表明類不能被實(shí)例化,通常用于只含有靜態(tài)成員的類。在構(gòu)造函數(shù)中不要做對(duì)類的實(shí)例進(jìn)行初始化以外的事情,也不能被顯式地調(diào)用。2.3.2

24、 構(gòu)造函數(shù)與析構(gòu)函數(shù) 析構(gòu)函數(shù)只能對(duì)類定義析構(gòu)函數(shù),結(jié)構(gòu)不支持析構(gòu)函數(shù)。一個(gè)類只能有一個(gè)析構(gòu)函數(shù)。無(wú)法繼承或重載析構(gòu)函數(shù)。無(wú)法調(diào)用析構(gòu)函數(shù),在對(duì)象注銷時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用。析構(gòu)函數(shù)既沒(méi)有修飾符也不能為它傳遞參數(shù)。2.4 C#的特性接口與集合委托與事件泛型2.4.1 C#的特性接口與集合接口繼承接口的任何非抽象類型都必須實(shí)現(xiàn)接口的所有成員。不能直接實(shí)例化接口。接口可以包含事件、索引器、方法和屬性。接口不包含方法的實(shí)現(xiàn)。類可以繼承多個(gè)接口。接口可以繼承多個(gè)接口。2.4.1 C#的特性接口與集合集合集合類定義為 System.Collection或System. Collections. Generi

25、c命名空間的一部分。大多數(shù)集合類都派生自ICollection、IComparer、IEnumerable、IList、IDictionary和IDictionaryEnumerator 接口以及它們的等效泛型接口。使用泛型集合類可以提供更高的類型安全性,在某些情況下還可以提供更好的性能,尤其是在存儲(chǔ)值類型時(shí),這些優(yōu)勢(shì)會(huì)體現(xiàn)得更明顯。2.4.2 C#的特性委托與事件委托在C#中實(shí)現(xiàn)委托的方法有以下幾個(gè)步驟。(1)聲明委托。(2)定義呼叫者和調(diào)用的函數(shù)。(3)定義被呼叫者和具體實(shí)現(xiàn)的函數(shù)(被調(diào)用的函數(shù))2.4.2 C#的特性委托與事件事件在C#中實(shí)現(xiàn)委托的方法有以下幾個(gè)步驟。事件通常使用委托事件

26、處理程序進(jìn)行聲明。事件始終通知對(duì)象消息并指示需要執(zhí)行某種操作的一種方式。發(fā)行者確定何時(shí)引發(fā)事件,訂閱者確定執(zhí)行何種操作來(lái)響應(yīng)該事件。一個(gè)事件可以有多個(gè)訂閱者。一個(gè)訂閱者可處理來(lái)自多個(gè)發(fā)行者的多個(gè)事件。沒(méi)有訂閱者的事件永遠(yuǎn)不會(huì)被調(diào)用。事件通常用于通知用戶操作,如圖形用戶界面中的按鈕單擊或菜單選擇操作。如果一個(gè)事件有多個(gè)訂閱者,當(dāng)引發(fā)該事件時(shí),會(huì)同步調(diào)用多個(gè)事件處理程序,也可以使用異步處理多個(gè)事件。2.4.3 C#的特性泛型 泛型在C#中泛型具有以下特點(diǎn)。如果實(shí)例化泛型類型的參數(shù)相同,那么JIT編譯器會(huì)重復(fù)使用該類型,因此C#的動(dòng)態(tài)泛型能力避免了C+靜態(tài)模板可能導(dǎo)致的代碼膨脹的問(wèn)題。C#泛型類型攜

27、帶有豐富的元數(shù)據(jù),因此C#的泛型類型可以應(yīng)用于強(qiáng)大的反射技術(shù)。C#的泛型采用“基類、接口、構(gòu)造器、值類型/引用類型”的約束方式來(lái)實(shí)現(xiàn)對(duì)類型參數(shù)的“顯示約束”,提高了類型安全的同時(shí),也喪失了C+模板基于“簽名”的隱式約束所具有的高靈活性。第3章 System.IO命名空間在ASP.NET 3.5中提供了對(duì)系統(tǒng)中文件的存取、創(chuàng)建、修改等封裝類,使Web應(yīng)用程序更具有實(shí)際應(yīng)用價(jià)值,開(kāi)發(fā)人員經(jīng)常會(huì)用來(lái)開(kāi)發(fā)Web OA(網(wǎng)絡(luò)辦公系統(tǒng))等用于網(wǎng)絡(luò)化動(dòng)態(tài)修改文件的系統(tǒng)。ASP.NET 3.5中用來(lái)對(duì)文件進(jìn)行修改的封裝類都集中在System.IO命名空間中。System.IO命名空間中的封裝類用來(lái)讀寫基于字符

28、、二進(jìn)制、字符串、內(nèi)存的各種數(shù)據(jù)存儲(chǔ)內(nèi)容的方法。章節(jié)內(nèi)容3.1System.IO命名空間概述3.2System.IO命名空間常用類3.1System.IO命名空間概述System.IO命名空間的主要成員類名描述BinaryReader以二進(jìn)制值讀取基本數(shù)據(jù)類型(整型、布爾型、字符串型和其他類型)BinaryWriter以二進(jìn)制值存儲(chǔ)基本數(shù)據(jù)類型(整型、布爾型、字符串型和其他類型)BufferedStream為字節(jié)流提供臨時(shí)存儲(chǔ)空間,允許以后提交Directory通過(guò)靜態(tài)方法實(shí)現(xiàn)操作計(jì)算機(jī)的目錄結(jié)構(gòu)DirectoryInfo通過(guò)一個(gè)有效的對(duì)象變量來(lái)實(shí)現(xiàn)操作計(jì)算機(jī)的目錄結(jié)構(gòu)File通過(guò)靜態(tài)方法實(shí)現(xiàn)

29、操作計(jì)算機(jī)上的一組文件FileInfo通過(guò)一個(gè)有效的對(duì)象變量來(lái)實(shí)現(xiàn)操作計(jì)算機(jī)上的一組文件FileStream實(shí)現(xiàn)文件隨機(jī)訪問(wèn)(如尋址能力),并以字節(jié)流來(lái)表示數(shù)據(jù)FileStreamWatcher監(jiān)控對(duì)指定的外部文件的更改MemoryStream實(shí)現(xiàn)對(duì)內(nèi)存(而不是物理文件)中存儲(chǔ)的流數(shù)據(jù)的隨機(jī)訪問(wèn)Path包含文件或目錄的路徑信息,其返回值為System.String類型StreamWriter 在文件中存儲(chǔ)文本信息,不支持隨機(jī)文件訪問(wèn)StreamReader從文件中獲取文本信息,不支持隨機(jī)文件訪問(wèn)StringWriter存儲(chǔ)字符串緩沖區(qū)的文本信息StringReader讀取字符串緩沖區(qū)的文本信息

30、3.2.1 System.IO.BinaryWriter BinaryWriter類以二進(jìn)制格式將信息寫入文本文件中,它從System.Object直接派生。BinaryWriter類在繼承時(shí),對(duì)Write()方法進(jìn)行重載,并使用Write()方法將數(shù)據(jù)寫入到文本文件中。BinaryWriter類中不僅定義了Write()方法,還提供了另外一些成員對(duì)文本文件進(jìn)行操作。在BinaryWriter類中提供的常用成員如表所示。成員描述BaseStream提供了BinaryWriter對(duì)象使用的基層流的訪問(wèn)Close()關(guān)閉二進(jìn)制流Flush()刷新二進(jìn)制流Seek()設(shè)置當(dāng)前流的位置Write()將

31、值寫入當(dāng)前流3.2.2 System.IO.BinaryReaderBinaryReader類與BinaryWriter類一樣,也從System.Object直接派生,與BinaryWriter類具有相同的特性。BinaryReader提供了一些成員讓開(kāi)發(fā)人員能獲取或設(shè)置從Stream派生的類型,這些成員如表所示。成員描述BaseStream提供BinaryReader對(duì)象使用的基層流的訪問(wèn)Close()關(guān)閉二進(jìn)制閱讀器PeekChar()返回下一個(gè)可用的字符,并且不改變指向當(dāng)前字節(jié)或字符的指針位置Read()讀取給定的字節(jié)或字符,并把它們存入數(shù)組ReadXXX()BinaryReader類定

32、義了許多ReadXXX()方法來(lái)從流中獲取下一個(gè)類型(ReadBoolean()、ReadByte()、ReadInt32()等)3.2.3 System.IO.BufferedStream BufferedStream用來(lái)輸出緩沖區(qū)內(nèi)的字節(jié)塊,它提供從基礎(chǔ)數(shù)據(jù)源或儲(chǔ)存庫(kù)讀取字節(jié)以及將字節(jié)寫入基礎(chǔ)數(shù)據(jù)源或儲(chǔ)存庫(kù)的實(shí)現(xiàn)。BufferedStream提供了 BinaryReader類和BinaryWriter類對(duì)文本文件進(jìn)行讀取和寫入。BufferedStream 用于在不需要緩沖區(qū)時(shí)防止緩沖區(qū)降低輸入和輸出速度。 3.2.4 System.IO.DirectoryInfo 在ASP.NET 3.

33、5的System.IO命名空間中不僅提供了操作文件的類,還提供了操作目錄的類,這一節(jié)來(lái)講解DirectoryInfo類。DirectoryInfo類主要用來(lái)創(chuàng)建、移動(dòng)、刪除和枚舉目錄下的所有成員,如表所示。成員作用Create()CreateSubdirectory()按照路徑名建立一個(gè)目錄(或者一組子目錄)Delete()刪除一個(gè)目錄和它的所有內(nèi)容GetDirectories()返回一個(gè)表示當(dāng)前目錄中所有子目錄的字符串?dāng)?shù)組GetFiles()返回FileInfo類型的數(shù)組,表示指定目錄下的一組文件MoveTo()將一個(gè)目錄及其內(nèi)容移動(dòng)到一個(gè)新的路徑Parent獲取指定路徑的父目錄Root獲取

34、路徑的根部分3.2.5 System.IO.Directory 在System.IO命名空間還提供了Directory類,它的成員實(shí)現(xiàn)了DirectoryInfo類中的大部分功能。Directory成員返回的是字符串類型而不是強(qiáng)類型的FileInfo和DirectoryInfo。對(duì)于Directory類的成員就不做詳細(xì)介紹,讀者可以參考DirectoryInfo類的成員使用方法。3.2.6 System.IO.FileInfo FileInfo類,它可以獲取文件的創(chuàng)建時(shí)間、大小等信息,在FileInfo類中提供了許多成員,以方便開(kāi)發(fā)人員來(lái)操作硬盤上的文件,F(xiàn)ileInfo類中的成員如表所示。成

35、員描述CopyTo()將現(xiàn)有文件復(fù)制到新文件Create()創(chuàng)建一個(gè)新的文件并且返回一個(gè)FileStream類型(后面會(huì)討論),通過(guò)它來(lái)和新創(chuàng)建的文件進(jìn)行交互CreateText()創(chuàng)建一個(gè)寫入新文本文件的 StreamWriter類型Delete()刪除FileInfo實(shí)例綁定的文件Directory獲取父目錄的實(shí)例DirectoryName獲取父目錄的完整路徑Length獲取當(dāng)前文件或目錄的大小MoveTo()將指定文件移到新位置,并提供指定新文件名的選項(xiàng)Name獲取文件名Open()用各種讀/寫訪問(wèn)權(quán)限和共享特權(quán)打開(kāi)文件OpenRead()創(chuàng)建只讀FileStreamOpenWrite(

36、)創(chuàng)建只寫FileStream類型3.2.7 System.IO.File File類提供了AppendText()、Create()、CreateText()、Open()、OpenRead()、OpenWrite()和OpenText()方法。在大多數(shù)情況下,F(xiàn)ile類和FileInfo類能互換使用。下表列出了File類中的常用方法。方法描述ReadAllBytes()打開(kāi)指定文件,以字節(jié)數(shù)組形式返回二進(jìn)制數(shù)據(jù),然后關(guān)閉文件ReadAllLines()打開(kāi)指定文件,以字符串?dāng)?shù)組形式返回字符數(shù)據(jù),然后關(guān)閉文件ReadAllText()打開(kāi)指定文件,以System.String形式返回字符數(shù)據(jù)

37、,然后關(guān)閉文件WriteAllBytes()打開(kāi)指定文件,寫入字節(jié)數(shù)組,然后關(guān)閉文件WriteAllLines()打開(kāi)指定文件,寫入字符串?dāng)?shù)組,然后關(guān)閉文件WriteAllText()打開(kāi)指定文件,寫入字符數(shù)據(jù),然后關(guān)閉文件3.2.8 System.IO.FileStream 在System.IO命名空間提供了FileStream類,這是一個(gè)相當(dāng)原始的流,它只能讀取或?qū)懭胍粋€(gè)字節(jié)或字節(jié)數(shù)組。而且此流還提供了Stream包裝類,它們可以更方便地處理文本數(shù)據(jù)和.NET類型。因?yàn)?,F(xiàn)ileStream只能處理原始字節(jié),在使用時(shí)必須把System.String編碼成相應(yīng)的字節(jié)數(shù)組。但是System.T

38、ext命名空間定義了一個(gè)Encoding類型,它提供了一些成員,來(lái)實(shí)現(xiàn)在字符串和字節(jié)數(shù)組之間的編碼/解碼操作。第4章 ASP.NET Web服務(wù)器控件ASP.NET Web 窗體是一項(xiàng)基于服務(wù)器的技術(shù),即所有代碼都是在服務(wù)器上運(yùn)行的??蛻舳耸怯脩舻臑g覽器。ASP.NET Web 窗體頁(yè)框架是可以在服務(wù)器上用于動(dòng)態(tài)生成 Web 頁(yè)的可縮放公共語(yǔ)言運(yùn)行庫(kù)編程模型。本章主要講解ASP.NET Web 窗體的基本特性,以及創(chuàng)建ASP.NET 3.5 Web 窗體常用的服務(wù)器控件的使用方法。章節(jié)內(nèi)容4.1ASP.NET Web窗體 4.2服務(wù)器控件概述4.3標(biāo)準(zhǔn)控件 4.4高級(jí)控件 4.1 ASP.NE

39、T Web窗體 表單的基本概念HTML表單(form)是傳統(tǒng)服務(wù)器端與瀏覽器端實(shí)現(xiàn)交互的重要手段。表單是網(wǎng)頁(yè)上的一個(gè)特定區(qū)域?;匕l(fā)和往返行程4.1 ASP.NET Web窗體 頁(yè)面生存期ASP.NET頁(yè)面聲明周期通常情況下會(huì)經(jīng)歷以下幾個(gè)階段。開(kāi)始:在用戶訪問(wèn)頁(yè)面時(shí),頁(yè)面就進(jìn)入了開(kāi)始階段。在該階段,頁(yè)面將確定請(qǐng)求是發(fā)回請(qǐng)求還是新的客戶端請(qǐng)求,并設(shè)置 IsPostBack 屬性。初始化:在頁(yè)面開(kāi)始頁(yè)面訪問(wèn)之后,會(huì)初始化頁(yè)面屬性以及頁(yè)面中的服務(wù)器控件等內(nèi)容。加載:頁(yè)面加載控件。驗(yàn)證:調(diào)用所有的驗(yàn)證程序控件的Vailidate方法,來(lái)設(shè)置各個(gè)驗(yàn)證程序控件和頁(yè)的屬性?;匕l(fā)事件:在回發(fā)事件中,頁(yè)面會(huì)調(diào)用處

40、理事件,對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的處理并回發(fā)給客戶端。呈現(xiàn):獲取服務(wù)器端回發(fā)的數(shù)據(jù),呈現(xiàn)在客戶端瀏覽器中,供用戶瀏覽。卸載:完全呈現(xiàn)頁(yè)面后,將頁(yè)面發(fā)送到客戶端并準(zhǔn)備丟棄時(shí),將調(diào)用卸載。 4.2 服務(wù)器控件概述 服務(wù)器控件的定義Web服務(wù)器控件是ASP.NET應(yīng)用程序中最常使用的控件,Web服務(wù)器控件位于System.Web.UI.WebControls命名空間中。所有的Web服務(wù)器控件都從WebControl基類派生,與HTML服務(wù)器控件相比,Web控件提供一個(gè)相對(duì)抽象的、一致的編程模型。服務(wù)器控件分類HTML服務(wù)器控件ASP.NET標(biāo)準(zhǔn)服務(wù)器控件自定義服務(wù)器控件4.2 服務(wù)器控件概述 服務(wù)器控件的屬性

41、用形式屬性連字符形式屬性內(nèi)部嵌套形式屬性服務(wù)器控件的事件內(nèi)部事件集Web服務(wù)器控件中的回發(fā)和非回發(fā)事件4.2.1 服務(wù)器控件的定義Web服務(wù)器控件是ASP.NET應(yīng)用程序中最常使用的控件,Web服務(wù)器控件位于System.Web.UI.WebControls命名空間中。所有的Web服務(wù)器控件都從WebControl基類派生,與HTML服務(wù)器控件相比,Web控件提供一個(gè)相對(duì)抽象的、一致的編程模型。相對(duì)抽象是指Web服務(wù)器控件不必像HTML控件一樣必須一一對(duì)應(yīng)一個(gè)HTML標(biāo)簽,事實(shí)上很多復(fù)雜的Web服務(wù)器控件所輸出的客戶端代碼非常復(fù)雜。Web服務(wù)器控件也具有一些獨(dú)有的特性,如自動(dòng)回發(fā)特性等。4.2

42、.2 服務(wù)器控件的分類HTML服務(wù)器控件 由System.Web.UI.HtmlControls類實(shí)現(xiàn)對(duì)應(yīng)傳統(tǒng)的HTML元素,添加相應(yīng)的ID屬性和runat=server屬性可以使之成為運(yùn)行在服務(wù)器端的控件 具備相應(yīng)的屬性、事件和方法Web服務(wù)器控件 由System.Web.UI.WebControls類實(shí)現(xiàn)沒(méi)有和HTML元素一一對(duì)應(yīng)4.2.2 服務(wù)器控件的分類在下述情況可以選擇使用HTML服務(wù)器控件喜歡與HTML相似的對(duì)象模型正在使用現(xiàn)存的HTML頁(yè)工作,并且希望快速地添加Web窗體功能控件既需要運(yùn)行客戶端腳本也需要運(yùn)行服務(wù)器端腳本由于帶寬受到限制,所以需要進(jìn)行大量的客戶端處理來(lái)減少帶寬的開(kāi)

43、銷在下述情況可以選擇使用Web服務(wù)器控件基于控件的事件驅(qū)動(dòng)模式創(chuàng)建的Web頁(yè)可以通過(guò)多種瀏覽器瀏覽只有Web服務(wù)器控件才能實(shí)現(xiàn)特定功能的場(chǎng)合由于帶寬不受限制,所以Web服務(wù)器控件的“請(qǐng)求-響應(yīng)”周期不會(huì)引起帶寬問(wèn)題 4.2.3 服務(wù)器控件的創(chuàng)建 通常對(duì)于服務(wù)器控件的創(chuàng)建分為兩種情況:一是使用IDE添加控件;二是動(dòng)態(tài)創(chuàng)建控件。通過(guò)編程方式將控件添加到Web網(wǎng)頁(yè)的方法如下。(1)創(chuàng)建控件的示例并設(shè)置其屬性,示例代碼如下。Label lb = new Label();lb.Text = Sample Label;(2)將新控件添加到頁(yè)上已有容器的Controls集合中,示例代碼如下。Panel Pa

44、nel1= new Panel();Panel1.Controls.Add(myLabel);4.2.4 控件屬性和事件控件屬性ASP.NET服務(wù)器控件具有大量屬性,這些屬性是絕大多數(shù)服務(wù)器控件都具備的,共分為5大類:布局、數(shù)據(jù)、外觀、行為和雜項(xiàng)。1常用形式屬性這是一種最為常見(jiàn)的屬性標(biāo)記形式。這種形式的屬性標(biāo)記位于控件內(nèi)部,與runat=server一起定義,代碼如下。2連字符形式屬性這種標(biāo)記形式的屬性位于控件標(biāo)記內(nèi)部,帶有連字符是這種形式屬性的最大特征。4.2.4 控件屬性和事件控件屬性3內(nèi)部嵌套形式屬性凡是具有這種標(biāo)記形式的屬性均為復(fù)雜屬性。它是以嵌套形式在控件標(biāo)記內(nèi)部聲明某屬性集的子屬性

45、,代碼如下。 1 2 3 44.2.4 控件屬性和事件控件事件 內(nèi)部事件集因?yàn)榇蠖鄶?shù)Web窗體事件要求到服務(wù)器的往返過(guò)程以進(jìn)行處理,所以這些事件可能影響窗體的性能。因此,服務(wù)器控件僅提供一組有限的內(nèi)部事件。Web服務(wù)器控件中的回發(fā)和非回發(fā)事件在Web服務(wù)器控件中,某些事件(通常是Click事件)會(huì)導(dǎo)致將窗體回發(fā)到服務(wù)器??梢灾付丶腁utoPostBack屬性,進(jìn)行頁(yè)面實(shí)時(shí)回發(fā)功能。4.3 標(biāo)準(zhǔn)控件 用于文本輸入和顯示的標(biāo)準(zhǔn)控件TextBox控件Label控件按鈕控件 Button控件LinkButton控件ImageButton控件用于選擇的列表控件DropDownList控件CheckB

46、oxList控件RadioButtonList控件HyperLink控件Table控件4.3.1 用于文本輸入和顯示的標(biāo)準(zhǔn)控件在ASP.NET 3.5中提供了一些用于開(kāi)發(fā)人機(jī)交互的窗口式控件,使界面更加直觀,增加客戶的體驗(yàn)度。用來(lái)獲取用戶輸入的控件一般叫做文本輸入控件,而經(jīng)過(guò)計(jì)算機(jī)處理后的數(shù)據(jù)呈現(xiàn)在用戶面前是通過(guò)顯示控件來(lái)實(shí)現(xiàn)的。4.3.1文本輸入控件TextBox控件TextBox控件依賴TextMode屬性的值來(lái)顯示3種不同類型的輸入框。TextMode屬性接受以下3個(gè)值。SingleLine:顯示單行輸入框,一般用來(lái)獲取少量的用戶輸入,如用戶名。MultiLine:顯示多行輸入框,一般用

47、來(lái)獲取較多的用戶輸入,如文本描述。Password:顯示文本被屏蔽的單行輸入框,一般用來(lái)作為密碼的輸入框。4.3.1文本輸入控件TextBox控件TextBox控件的常用屬性。屬性描述AccessKey指定一個(gè)導(dǎo)向TextBox控件的鍵AutoPostBack在TextBox控件的內(nèi)容發(fā)生變化時(shí),自動(dòng)把包含這個(gè)TextBox的表單傳回服務(wù)器端Columns指定顯示的列數(shù)Enabled禁用TextBox控件MaxLength指定用戶輸入到TextBox的數(shù)據(jù)長(zhǎng)度的最大值(當(dāng)TextMode設(shè)為Multiline時(shí)無(wú)效)ReadOnly防止用戶更改TextBox中的文本Rows指定顯示的行數(shù)Tab

48、Index指定TextBox控件的Tab順序Wrap設(shè)置當(dāng)TextMode屬性值為Multiline時(shí)文本是否自動(dòng)換行4.3.1文本顯示控件Label控件Label控件一般可以用來(lái)顯示頁(yè)面中具有標(biāo)記意義的數(shù)據(jù),或者呈現(xiàn)程序處理后返回的結(jié)果。在呈現(xiàn)控件時(shí),任何賦給Label控件的Text屬性的字符串將通過(guò)Label控件顯示出來(lái)??梢越oText屬性賦值簡(jiǎn)單的文本或HTML內(nèi)容。 使用TextBox實(shí)現(xiàn)密碼輸入4.3.1文本顯示控件Label控件Label控件的常用屬性 屬性描述BackColor改變Label的背景色BorderColor設(shè)置呈現(xiàn)在Label周圍的邊框的顏色BorderStyle設(shè)

49、置顯示在Label周圍的邊框,可用的值有NotSet、None、Dotted、Dashed、Solid、Double、Groove、Ridge、Inset和OutsetBorderWidth設(shè)置呈現(xiàn)的Label邊框的寬度CssClass設(shè)置Label關(guān)聯(lián)的CSS類Font設(shè)置Label的字體屬性ForeColor設(shè)置Label呈現(xiàn)內(nèi)容的顏色Style為L(zhǎng)abel的樣式賦值ToolTip設(shè)置Label的title屬性(在微軟IE中,title屬性顯示成浮動(dòng)的提示)4.3.2按鈕控件ASP.NET 3.5中包含3種用于向服務(wù)器端提交表單的按鈕控件,即Button、LinkButton和ImageB

50、utton。這3種控件擁有同樣的功能,但每種控件的外觀截然不同。4.3.2按鈕控件 Button控件Button控件是用來(lái)向服務(wù)器端提交表單的按鈕。Button控件的屬性屬性描述AccessKey指定一個(gè)導(dǎo)向Button控件的鍵CommandArgument指定傳給Command事件的命令參數(shù)CommandName指定傳給Command事件的命令名Enable禁用該Button控件OnClientClick指定單擊按鈕時(shí)執(zhí)行的客戶端腳本PostBackUrl設(shè)置將表單傳給某個(gè)頁(yè)面TabIndex設(shè)置Button控件的Tab順序Text標(biāo)注Button控件UseSubmitBehavior使用J

51、avaScript回傳表單4.3.2按鈕控件LinkButton控件LinkButton控件:跟Button控件一樣,用于把表單數(shù)據(jù)回傳給服務(wù)器端。但是,不像Button控件生成一個(gè)按鈕,LinkButton控件生成一個(gè)鏈接。4.3.2按鈕控件ImageButton控件ImageButton控件:與Button和LinkButton控件類似,用于把表單數(shù)據(jù)回傳給服務(wù)器端,只是ImageButton控件總是顯示圖片。4.3.3用于選擇的列表控件列表控件可以同時(shí)顯示很多數(shù)據(jù)項(xiàng),以方便用戶做相應(yīng)的選擇。例如,在淘寶網(wǎng)上搜索自己喜歡的東西時(shí),用戶可以在搜索之前先選擇所屬的類型。常用的列表控件包括Dro

52、pDownList、CheckBoxList、RadioButtonList控件。所有的列表控件都繼承自ListControl基類。 4.3.3列表控件DropDownList控件DropDownList控件使用戶能夠從一個(gè)單選下拉列表中選擇一個(gè)數(shù)據(jù)項(xiàng)。通過(guò)設(shè)置該控件的高度和寬度(以像素為單位),可以規(guī)定控件的大小,但是不能控制該下拉列表顯示的項(xiàng)目數(shù)。ListItem集合編輯器 4.3.3列表控件CheckBoxList控件CheckBoxList控件是一個(gè)整體式的控件,組織一個(gè)可復(fù)選的列表項(xiàng)集合。其中,每個(gè)列表項(xiàng)由一個(gè)獨(dú)立的CheckBox控件生成,子復(fù)選框的屬性通過(guò)讀取相關(guān)的數(shù)據(jù)源進(jìn)行設(shè)置

53、。任何一個(gè)列表控件都有一個(gè)Items屬性,它包含子項(xiàng)目集合。Items屬性通過(guò)ListItemCollection類實(shí)現(xiàn),并使它所包含的每個(gè)項(xiàng)目可以通過(guò)ListItem對(duì)象進(jìn)行訪問(wèn)。以下代碼循環(huán)遍歷了CheckBoxList控件中存儲(chǔ)的項(xiàng),并檢查每個(gè)項(xiàng)的Selected屬性。foreach(ListItem item in chkList.Items) if (item.Selected) / this item is selected 4.3.3列表控件RadioButtonList控件RadioButtonList控件充當(dāng)一組單選按鈕的父控件,每個(gè)子項(xiàng)通過(guò)一個(gè)RadioButton控件生成

54、。根據(jù)設(shè)計(jì)規(guī)定,一個(gè)RadioButtonList控件只能有一項(xiàng)被選中或者一項(xiàng)都沒(méi)被選中。SelectedItem屬性作為L(zhǎng)istItem對(duì)象返回所選的項(xiàng)。需要注意,沒(méi)有什么可以保證在任何時(shí)候只有一項(xiàng)被選中。因此,在訪問(wèn)RadioButtonList控件的SelectedItem時(shí)要特別小心,它可能為null。 if (radioButtons.SelectedValue != null) /執(zhí)行語(yǔ)句 RadioButtonList控件支持與CheckBoxList控件相同的屬性集,而且完全像它那樣接受一些局部指令。4.3.4 HyperLink控件HyperLink控件相當(dāng)于HTML代碼中的

55、標(biāo)簽,但是HyperLink控件又增加了許多屬性。超鏈接控件可以通過(guò)傳遞指定的參數(shù)來(lái)訪問(wèn)不同的頁(yè)面。當(dāng)觸發(fā)了一個(gè)事件后,超鏈接的屬性可以被改變。ImageUrl屬性 ImageUrl屬性主要用來(lái)設(shè)置HyperLink控件是以文本形式還是以圖片形式顯示,以下代碼中HyperLink以圖片的形式顯示。 圖片超鏈接 4.3.4 HyperLink控件NavigateUrl屬性。 NavigateUrl屬性用來(lái)設(shè)置超鏈接控件的鏈接Url地址,也就是即將跳轉(zhuǎn)到的頁(yè)面,以下代碼實(shí)現(xiàn)了這個(gè)功能。 鏈接到我的空間 可以通過(guò)設(shè)置ImageUrl屬性來(lái)為HyperLink控件指定圖片。如果同時(shí)設(shè)置了Text和Im

56、ageUrl屬性,那么ImageUrl屬性優(yōu)先。4.3.5 Table控件在ASP.NET 3.5中,還提供了用來(lái)進(jìn)行頁(yè)面布局的表控件,不僅如此,表控件還提供了可編程功能。表中的行可以通過(guò)TableRow創(chuàng)建,而表中的列可通過(guò)TableCell來(lái)實(shí)現(xiàn)。TableCell集合編輯器窗口4.4 高級(jí)控件 AdRotator控件Calendar控件MultiView和View控件Image和ImageMap控件Wizard控件4.4.1 AdRotator控件AdRotator控件也叫做廣告控件,其主要屬性如下。ImageUrl:指定一個(gè)圖片文件的相對(duì)路徑或絕對(duì)路徑,當(dāng)沒(méi)有ImageKey元素與Op

57、tionalImageUrl匹配時(shí)則顯示該圖片。NavigateUrl:包含目標(biāo)Web 站點(diǎn)的URL。在beta版以前,這個(gè)元素叫做TargetUrl。OptionalImageUrl:指定一個(gè)圖片文件的相對(duì)路徑或絕對(duì)路徑,對(duì)于ImageKey元素與OptionalImageUrl匹配時(shí)則顯示該圖片。OptionalNavigateUrl:指定特定頁(yè)的 URL,當(dāng)用戶單擊廣告并且有NaivigateUrlKey元素與OptionalNavigateUrl元素匹配時(shí),會(huì)將用戶發(fā)送到該頁(yè)面。AlternateText:該元素用來(lái)替代IMG中的ALT元素。KeyWord:指定廣告的類別。Impres

58、sion:該元素是一個(gè)數(shù)值,指示輪換時(shí)間表中該廣告相對(duì)于文件中的其他廣告的權(quán)重。4.4.2 Calendar控件日歷控件不僅顯示了一個(gè)日歷,還可以讓用戶在動(dòng)態(tài)選取的同時(shí),能夠和數(shù)據(jù)庫(kù)進(jìn)行交互操作,實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)綁定。從工具箱中拖動(dòng)一個(gè)Calendar控件到頁(yè)面中,其代碼如下。4.4.3 MultiView控件和View控件MultiView控件可以作為一個(gè)或多個(gè)View控件的容器,在一個(gè)MultiView控件中,可以放置多個(gè)View控件(選項(xiàng)卡),當(dāng)用戶單擊到該選項(xiàng)卡時(shí),可以顯示相應(yīng)的內(nèi)容。無(wú)論是MultiView還是View,都不會(huì)在HTML頁(yè)面中呈現(xiàn)任何標(biāo)記。而MultiView控件和Vi

59、ew沒(méi)有像其他控件那樣多的屬性,唯一需要指定的就是ActiveViewIndex屬性。注意,View控件必須放置在MultiView控件當(dāng)中,否則無(wú)法使用。4.4.4 Image和ImageMap控件ImageMap控件是開(kāi)發(fā)人員用來(lái)在圖片上定義熱點(diǎn)區(qū)域的,用戶通過(guò)單擊這些熱點(diǎn)區(qū)域進(jìn)行回發(fā)(PostBack)或定向(Navigate)操作。該控件一般用在需要對(duì)某張圖片的局部范圍進(jìn)行互動(dòng)操作的場(chǎng)合。ImageMap控件主要由兩個(gè)部分組成,第一部分是圖像,第二部分是作用點(diǎn)控件的集合,其主要屬性有HotSpotMode、HotSpots。4.4.4 Image和ImageMap控件Image控件用來(lái)

60、在Web窗體中顯示圖像,當(dāng)圖片無(wú)法顯示時(shí),圖片將被替換成AlternateText屬性中的文字,ImageAlign屬性用來(lái)控制圖片的對(duì)齊方式,而ImageUrl屬性用來(lái)設(shè)置圖像連接地址。Image控件可以通過(guò)編程來(lái)控制圖像控件。Image控件常用屬性列表屬性說(shuō)明Height和Width在頁(yè)面上為圖形保留空間。當(dāng)呈現(xiàn)頁(yè)面時(shí),將根據(jù)保留的空間相應(yīng)調(diào)整圖像大小ImageAlign使用如Top、Bottom、Left、Middle和Right這樣的值將圖像與環(huán)繞文本對(duì)齊。在代碼中,圖像對(duì)齊是通過(guò)使用 ImageAlign 枚舉來(lái)設(shè)置的AlternateText若不能加載圖形,在顯示時(shí)用文本來(lái)代替它。

溫馨提示

  • 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)論