![開發(fā)Web科學(xué)應(yīng)用程序_第1頁](http://file4.renrendoc.com/view/5280c4d37539a5d35ab32d0c7905b6d2/5280c4d37539a5d35ab32d0c7905b6d21.gif)
![開發(fā)Web科學(xué)應(yīng)用程序_第2頁](http://file4.renrendoc.com/view/5280c4d37539a5d35ab32d0c7905b6d2/5280c4d37539a5d35ab32d0c7905b6d22.gif)
![開發(fā)Web科學(xué)應(yīng)用程序_第3頁](http://file4.renrendoc.com/view/5280c4d37539a5d35ab32d0c7905b6d2/5280c4d37539a5d35ab32d0c7905b6d23.gif)
![開發(fā)Web科學(xué)應(yīng)用程序_第4頁](http://file4.renrendoc.com/view/5280c4d37539a5d35ab32d0c7905b6d2/5280c4d37539a5d35ab32d0c7905b6d24.gif)
![開發(fā)Web科學(xué)應(yīng)用程序_第5頁](http://file4.renrendoc.com/view/5280c4d37539a5d35ab32d0c7905b6d2/5280c4d37539a5d35ab32d0c7905b6d25.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、開發(fā)Web1內(nèi)容ASP.NET的開發(fā)環(huán)境配置 編寫ASP.NET Web應(yīng)用程序 ASP.NET服務(wù)器端控件 創(chuàng)建Web服務(wù) Q&A21 ASP.NET的開發(fā)環(huán)境配置 首先并不是所有的Windows系統(tǒng)都可作為ASP.NET的開發(fā)平臺,Windows 98系統(tǒng)系列就不支持ASP.NET其次為了能夠創(chuàng)建ASP.NET Web應(yīng)用程序,系統(tǒng)要安裝微軟的Internet信息服務(wù)器(IIS),如果使用的系統(tǒng)是Windows 2000或Windows XP系列,那它們直接就帶有IIS,可以通過【控制面板】中的添加/刪除程序來安裝32 編寫ASP.NET Web應(yīng)用程序 Visual Studio .NE
2、T是一個功能十分強(qiáng)大的開發(fā)工具,我們先來使用它創(chuàng)建一個簡單的Web應(yīng)用程序,然后逐步對這個程序進(jìn)行講解?!纠看蜷_Visual Studio .NET,選擇【文件】|【新建】|【項(xiàng)目】命令。從【模板】欄內(nèi)選擇【ASP.NET Web應(yīng)用程序】。如果是第一次創(chuàng)建,Web應(yīng)用程序的名稱將是WebApplication1,接受默認(rèn)值,單擊【確定】按鈕。這時將出現(xiàn)WebForm1.aspx的設(shè)計界面,現(xiàn)在可以向其中添加控件形成一個完整的Web窗體。 42.1 ASP.NET的基本語法基本文件名種類:.asax文件:ASP.NET的系統(tǒng)環(huán)境設(shè)置文件。.aspx文件:內(nèi)含ASP程序代碼的文件,瀏覽器可執(zhí)行
3、此類文件,向服務(wù)器提出瀏覽請求。.asmx文件:制作Web Services的源文件。.sdl文件:制作Web Services的XML格式的文件。.vb或.cs文件:在非ASP.NET環(huán)境下,執(zhí)行Web Services的文件。.aspc文件:可重復(fù)使用多個.aspx文件,此文件內(nèi)可含有控件。.ascx文件:內(nèi)含User Control的文件,可內(nèi)含在多個.aspx文件中。52.1 ASP.NET的基本語法聲明代碼的語法代碼內(nèi)聯(lián)代碼段 或者ASP.NET服務(wù)器端控件語法ASP.NET HTML服務(wù)器端控件語法數(shù)據(jù)綁定語法Object標(biāo)記語法 例如注釋語法 62.2 Code Behind技術(shù)
4、aspx例子WebForm1 Label 72.2 Code Behind技術(shù)cs例子public class WebForm1 : System.Web.UI.Pageprotected System.Web.UI.WebControls.TextBox TextBox1;protected System.Web.UI.WebControls.Button Button1;protected System.Web.UI.WebControls.Label Label1;private void Page_Load(object sender, System.EventArgs e)/ 在此處
5、放置用戶代碼以初始化頁面private void InitializeComponent() this.Button1.Click += new System.EventHandler(this.Button1_Click);this.Load += new System.EventHandler(this.Page_Load);private void Button1_Click(object sender, System.EventArgs e)int i=100;string str = Convert.ToString(i ,2);Label1.Text = str;82.3 Web窗
6、體 在Web窗體頁中,用戶界面編程分為兩個不同的部分:可視控件和邏輯。視覺元素稱作Web窗體“頁”(page)。這種頁由一個包含靜態(tài)HTML和/或ASP.NET服務(wù)器控件的文件組成。Web窗體頁用作要顯示的靜態(tài)文本和控件的容器。Web窗體頁的邏輯由代碼組成,開發(fā)者創(chuàng)建代碼與窗體進(jìn)行交互,編程邏輯位于與用戶界面文件不同的文件中,該文件稱作“代碼隱藏”文件,用aspx.cs”作為擴(kuò)展名,在代碼隱藏文件中編寫的邏輯使用C#來編寫。 92.3 Web窗體的事件響應(yīng) 像在Windows窗體上使用控件一樣,Web控件和HTML控件也有與它們相關(guān)的事件,可以為這些事件生成代碼。每個控件都有它們自己的特殊事件
7、,例如,按鈕控件有Click事件,文本框有TextChanged事件。Web窗體事件和Windows窗體事件有一個重要的區(qū)別:Windows窗體的事件是在本地機(jī)進(jìn)行處理的;與Web窗體事件相關(guān)的代碼被存儲在Web服務(wù)器上的的代碼文件中,這意味著當(dāng)運(yùn)行在用戶瀏覽器上的Web窗體中的事件被觸發(fā)時,窗體不得不回叫Web服務(wù)器來處理它的事件。當(dāng)事件被觸發(fā)時,Web窗體頁再次與Web服務(wù)器通信來處理這些代碼。因此,過多地使用控件事件會造成頻繁地訪問服務(wù)器。103 ASP.NET服務(wù)器端控件 3.1 Web服務(wù)器控件 3.2 HTML服務(wù)器控件 3.3 驗(yàn)證控件 3.4 用戶控件 113 ASP.NET服
8、務(wù)器端控件 服務(wù)器端控件是ASP.NET編程的基礎(chǔ),編寫Web頁面很大程度上就是將控件拼湊起來,以使其協(xié)同工作。Web窗體總共可以加入4種控件,它們是:Web服務(wù)器控件,HTML服務(wù)器控件,驗(yàn)證控件和用戶控件123.1 Web服務(wù)器控件 Visual Studio .NET提供了眾多的Web服務(wù)器控件,這些控件都包含多種屬性,更改這些屬性可使控件具有不同的功能??丶膶傩约瓤梢栽赩isual Studio .NET的屬性對話框中進(jìn)行靜態(tài)更改,也可以在程序運(yùn)行時進(jìn)行動態(tài)更改。133.1 Web服務(wù)器控件- 文本框控件 TextBox控件文本框控件提供了向Web窗體輸入信息的方法,可以將文本框的T
9、extMode屬性賦為SingLine、MultiLine和Password來改變它的行為模式143.1 Web服務(wù)器控件-文本框控件的公共屬性名 稱描 述Columns獲取或設(shè)置文本框的顯示寬度(以字符為單位)MaxLength獲取或設(shè)置文本框中最多允許的字符數(shù)ReadOnly獲取或設(shè)置一個值,用于指示能否更改TextBox 控件的內(nèi)容Rows獲取或設(shè)置多行文本框的顯示高度Text獲取或設(shè)置文本框的文本內(nèi)容TextMode獲取或設(shè)置文本框的行為模式Wrap獲取或設(shè)置一個值,該值指示文本框內(nèi)的文本內(nèi)容是否換行153.1 Web服務(wù)器控件-文本框控件的公共方法名 稱描 述AppendText向文
10、本框的當(dāng)前文本追加文本Clear從文本框控件中清除所有文本ClearUndo從該文本框的撤消緩沖區(qū)中清除關(guān)于最近操作的信息Copy將文本框中的當(dāng)前選定內(nèi)容復(fù)制到剪貼板Cut將文本框中的當(dāng)前選定內(nèi)容移動到剪貼板中Paste用剪貼板的內(nèi)容替換文本框中的當(dāng)前選定內(nèi)容Hide對用戶隱藏控件163.1 Web服務(wù)器控件-按鈕控件Visual Studio .NET的工具箱中提供了3種按鈕控件:普通按鈕Button、顯示超鏈接樣式的按鈕LinkButton和顯示圖像樣式的ImageButton。按鈕控件發(fā)生Click事件時會直接導(dǎo)致向服務(wù)器端提交。173.1 Web服務(wù)器控件-按鈕控件公共屬性名 稱描 述
11、CausesValidation獲取或設(shè)置一個值,該值指示在單擊Button控件時是否執(zhí)行了驗(yàn)證Text獲取或設(shè)置在Button控件中顯示的文本標(biāo)題ToolTip獲取或設(shè)置當(dāng)鼠標(biāo)指針懸停在 Web 服務(wù)器控件上時顯示的文本 Button和LinkButton控件的公共屬性名 稱描 述AlternateText獲取或設(shè)置當(dāng)圖像不可用時,Image控件中顯示的替換文本。支持工具提示功能的瀏覽器將此文本顯示為工具提示ImageAlign獲取或設(shè)置控件相對于Web頁上其他元素的對齊方式ImageUrl獲取或設(shè)置在控件中顯示的圖像的位置ImageButton控件的公共屬性 183.1 Web服務(wù)器控件-
12、復(fù)選框和單選按鈕控件復(fù)選框控件(CheckBox、CheckBoxList)和單選按鈕控件(RadioButton、 RadioButtonList)復(fù)選框控件和單選按鈕控件十分類似,它們都允許從多個選項(xiàng)中進(jìn)行選擇,不同的是復(fù)選框控件允許同時選擇多項(xiàng),而單選按鈕控件每次只能選擇一項(xiàng)。CheckBoxList控件和RadioButtonList控件可以單獨(dú)使用,而CheckBox控件和RadioButton控件則需要多個一起使用。它們都可以和數(shù)據(jù)源進(jìn)行綁定,不過比較起來使用CheckBoxList控件和RadioButtonList控件訪問數(shù)據(jù)更為方便一些193.1 Web服務(wù)器控件-復(fù)選框和單
13、選按鈕控件203.1 Web服務(wù)器控件-復(fù)選框和單選按鈕控件對CheckBoxList控件和RadioButtonList控件來說,可以直接通過Items屬性來設(shè)置顯示項(xiàng)和標(biāo)簽。打開這些控件屬性對話框中的Items項(xiàng),將出現(xiàn)ListItem集合編輯器 可以在左側(cè)【成員】欄內(nèi)添加顯示項(xiàng),右邊的屬性欄可以設(shè)置該項(xiàng)的屬性。Selected屬性表明該項(xiàng)是否被選定,Text屬性的值將作為該項(xiàng)的顯示標(biāo)簽,Value的值可以作為編程時的內(nèi)部值使用,該值可與Text屬性采用不同的值213.1 Web服務(wù)器控件-復(fù)選框和單選按鈕控件名 稱描 述Checked獲取或設(shè)置一個值,該值指示是否已選中控件Text獲取或
14、設(shè)置與控件關(guān)聯(lián)的文本標(biāo)簽TextAlign獲取或設(shè)置與控件關(guān)聯(lián)的文本標(biāo)簽的對齊方式 CheckBox和RadioButton控件的公共屬性223.1 Web服務(wù)器控件-復(fù)選框和單選按鈕控件名 稱描 述CellPadding獲取或設(shè)置表單元格的邊框和內(nèi)容之間的距離(以像素為單位)CellSpacing獲取或設(shè)置單元格之間的距離(以像素為單位)DataMember獲取或設(shè)置要綁定到控件的 DataSource 中的特定表DataSource獲取或設(shè)置填充列表控件項(xiàng)的數(shù)據(jù)源DataTextField獲取或設(shè)置為列表項(xiàng)提供文本內(nèi)容的數(shù)據(jù)源字段DataTextFormatString獲取或設(shè)置格式化字符
15、串,該字符串用來控制如何顯示綁定到列表控件的數(shù)據(jù)DataValueField獲取或設(shè)置為各列表項(xiàng)提供值的數(shù)據(jù)源字段Items獲取列表控件項(xiàng)的集合RepeatColumns獲取或設(shè)置要在控件中顯示的列數(shù)RepeatDirection獲取或設(shè)置一個值,該值指示控件是垂直顯示還是水平顯示RepeatLayout獲取或設(shè)置復(fù)選框的布局SelectedIndex獲取或設(shè)置列表中選定項(xiàng)的最低序號索引SelectedItem獲取列表控件中索引最小的選定項(xiàng) CheckBoxList和RadioButtonList控件的公共屬性 233.1 Web服務(wù)器控件- DropDownList控件和ListBox控件D
16、ropDownList控件和ListBox控件都提供了選擇特定項(xiàng)的功能,不同處在于DropDownList控件提供一個下拉列表框進(jìn)行選擇,而ListBox控件直接提供多個選項(xiàng),而且還可同時選擇ListBox控件中的多項(xiàng)與復(fù)選框控件和單選按鈕相同,它們都可以通過屬性對話框的Items項(xiàng)打開ListItem集合編輯器對顯示項(xiàng)進(jìn)行添加刪除,它們也都具有數(shù)據(jù)源綁定功能243.1 Web服務(wù)器控件- DropDownList控件和ListBox控件ListItem集合編輯器253.1Web服務(wù)器控件-DropDownList控件公共屬性名 稱描 述Items獲取列表控件項(xiàng)的集合SelectedIndex
17、已重寫。獲取或設(shè)置 DropDownList 控件中的選定項(xiàng)的索引SelectedItem獲取列表控件中索引最小的選定項(xiàng)263.1 Web服務(wù)器控件-ListBox控件公共屬性名 稱描 述Items獲取列表控件項(xiàng)的集合Rows獲取或設(shè)置 ListBox 控件中顯示的行數(shù)SelectedIndex獲取或設(shè)置列表中選定項(xiàng)的最低序號索引SelectedItem獲取列表控件中索引最小的選定項(xiàng)SelectionMode獲取或設(shè)置 ListBox 控件的選擇模式273.2 HTML服務(wù)器控件 ASP.NET的Web窗體也支持HTML服務(wù)器控件,在工具箱的HTML子項(xiàng)就可以找到它們,你可能會發(fā)現(xiàn)HTML服務(wù)
18、器控件和剛才介紹的Web服務(wù)器控件有些重復(fù),它同樣也具有按鈕控件、文本框控件等,那它與Web控件有什么區(qū)別呢,什么時候應(yīng)該用Web服務(wù)器控件什么時候應(yīng)該用HTML服務(wù)器控件HTML服務(wù)器控件與Web服務(wù)器控件的區(qū)別瀏覽器都支持基本的HTML元素,而應(yīng)用這些基本的HTML元素可以組合出復(fù)雜的元素,HTML服務(wù)器控件和基本的HTML元素是對應(yīng)的。使用Web服務(wù)器控件時,從服務(wù)器方的角度來看根本不知道最終控件會在瀏覽器中用什么樣的HTML元素顯示出來,顯示一個Web服務(wù)器控件可能需要組合多個HTML元素,也就是說瀏覽器顯示什么樣的HTML元素對服務(wù)端是透明的。HTML服務(wù)器控件提供了操縱瀏覽器HTM
19、L元素的機(jī)會。283.2 HTML服務(wù)器控件 【例】新建一個Web項(xiàng)目,將位置欄中的項(xiàng)目名改為TestHTML。從【工具箱】中的HTML欄內(nèi)添加一個Button控件,切換到Web窗體的HTML對話框,將會顯示aspx文件的內(nèi)容,如以下代碼所示: 無標(biāo)題頁 293.2 HTML服務(wù)器控件 該Button控件在aspx文件里直接對應(yīng)著一個HTML元素,因此會不加處理地直接傳給瀏覽器,其他的HTML控件也與此類似。也可以在服務(wù)器端處理HTML服務(wù)器控件的事件,不過要先使它們能在服務(wù)器端運(yùn)行。在上面的例子的Web窗體的設(shè)計對話框中右擊Button控件,從中選擇【作為服務(wù)器控件運(yùn)行在Button控件的左
20、上方會出現(xiàn)一個小綠色箭頭,它就表明該控件將作為服務(wù)器控件運(yùn)行,這時在aspx文件里對應(yīng)的行變成:303.2 HTML服務(wù)器控件 使HTML控件作為服務(wù)器控件運(yùn)行 313.2 HTML服務(wù)器控件 通過加入runat=“server”使它從簡單的HTML元素變成了HTML服務(wù)器控件,這樣就可以像Web服務(wù)器對它進(jìn)行服務(wù)器端編程。在上面的設(shè)計對話框中雙擊Button控件將切換到代碼編輯對話框,在Button1_ServerClick方法下填寫如下代碼:private void Button1_ServerClick(object sender, System.EventArgs e)/改變按鈕標(biāo)簽B
21、utton1.Value = Click;運(yùn)行這個程序,單擊Button按鈕,頁面刷新過后Button按鈕的標(biāo)簽就變成了Click。該Button按鈕的回發(fā)也是由客戶端腳本程序產(chǎn)生的,可以使用上面介紹查看瀏覽器內(nèi)容的方法來具體看一下實(shí)現(xiàn)過程,這些客戶端腳本程序是Web服務(wù)器處理ASP.NET程序時產(chǎn)生的?,F(xiàn)在就面臨著如何在Web服務(wù)器控件和HTML服務(wù)器控件直接選擇的問題,這里建議如果偏愛使用RAD編程模型的話最好使用Web服務(wù)器控件,如果想更好地控制瀏覽器的顯示,與客戶端腳本程序交互,那么就請用HTML服務(wù)器控件。32web服務(wù)器控件 HTML服務(wù)器控件和HTML控件的區(qū)別(1)Html控件
22、 最常用, 出現(xiàn)最早web服務(wù)器控件(ASP .NET Server Control) 與WinForm開發(fā)相似HTML服務(wù)器控件(HTML Server Control) 向下兼容 基于ASP系統(tǒng)的移植而推出的介于以上兩者之間的權(quán)宜產(chǎn)物33web服務(wù)器控件 HTML服務(wù)器控件和HTML控件的區(qū)別(2)Html控件的標(biāo)簽 Html服務(wù)器控件的標(biāo)簽 Html服務(wù)器控件其實(shí)就是Html控件的基礎(chǔ)上加上runat=server所構(gòu)成的控件 Web服務(wù)器控件的標(biāo)簽 Web服務(wù)器控件會根據(jù)情況在瀏覽器端產(chǎn)生一個或多個對應(yīng)的Html標(biāo)簽34web服務(wù)器控件 HTML服務(wù)器控件和HTML控件的區(qū)別(3)Ht
23、ml控件不能在服務(wù)器端控制,只能在瀏覽器端通過javascript等腳本語言操作 Html服務(wù)器控件設(shè)定了runat=server 屬性后,頁面對象會將該控件載入控制器,服務(wù)器端的代碼就能對其進(jìn)行控制Html服務(wù)器控件在頁面執(zhí)行完畢后會被轉(zhuǎn)換成Html標(biāo)注,然后當(dāng)成字符串流發(fā)送到瀏覽器端,瀏覽器端的腳本能夠進(jìn)行操作。 Web服務(wù)器控件的操作則是由頁面把Form發(fā)回服務(wù)器,然后完全由服務(wù)器端代碼處理35web服務(wù)器控件 HTML服務(wù)器控件和HTML控件的區(qū)別(4)Html控件不能在服務(wù)器端控制,只能在瀏覽器端通過javascript等腳本語言操作 Html服務(wù)器控件設(shè)定了runat=server
24、 屬性后,頁面對象會將該控件載入控制器,服務(wù)器端的代碼就能對其進(jìn)行控制Html服務(wù)器控件在頁面執(zhí)行完畢后會被轉(zhuǎn)換成Html標(biāo)注,然后當(dāng)成字符串流發(fā)送到瀏覽器端,瀏覽器端的腳本能夠進(jìn)行操作。 Web服務(wù)器控件的操作則是由頁面把Form發(fā)回服務(wù)器,然后完全由服務(wù)器端代碼處理36Web服務(wù)器控件、Html服務(wù)器控件和Html控件的優(yōu)缺點(diǎn)Html控件和Html服務(wù)器控件需要編碼以保持瀏覽器兼容。 Web服務(wù)器控件能夠檢測瀏覽器的兼容性,保持表現(xiàn)的一致Html服務(wù)器控件通過為Html控件添加runat=server以實(shí)現(xiàn)ASP程序的移植。 將ASP程序移植成使用Web服務(wù)器控件的ASP.Net程序相當(dāng)于
25、重寫新的應(yīng)用Html控件和Html服務(wù)器控件是標(biāo)準(zhǔn)控件,能夠用瀏覽器端腳本語言操作。 使用Web服務(wù)器控件提供的對象模型,能夠得到和Win Form類似的編程體驗(yàn),而且無需再學(xué)習(xí)不同的腳本語言。 Web服務(wù)器內(nèi)部的代碼并不開放,你無法獲得比較直接的控制37Web服務(wù)器控件、Html服務(wù)器控件和Html控件 小結(jié)Html服務(wù)器控件作為一個過渡的實(shí)現(xiàn),雖然能夠兼顧瀏覽器端和服務(wù)器端,終究是一個奇怪的存在,盡量少使用為妙從微軟的角度,良好封裝的Web服務(wù)器控件提供了大量的便利,同時Web Form和Win Form開發(fā)模式的差異使得相互的經(jīng)驗(yàn)?zāi)軌蚧ネ?,?dāng)然是多使用Web服務(wù)器控件為好。不過Web服務(wù)
26、器控件的缺點(diǎn)是占用服務(wù)器資源,頁面Postback過多存在的就是合理的,Html還是要會地,Javascript當(dāng)然是要好好學(xué)地,Web開發(fā)各種奇奇怪怪的標(biāo)簽共存于Page中的場面短時間內(nèi)是不可能消失地383.3 驗(yàn)證控件 ASP.NET提供了多種驗(yàn)證控件這些驗(yàn)證控件都支持服務(wù)器端驗(yàn)證,如果瀏覽器支持DHTML的話也可提供客戶端驗(yàn)證。如果運(yùn)用得當(dāng)客戶端驗(yàn)證可以有效地減少與服務(wù)器端的交互,極大地提高Web應(yīng)用程序的性能。驗(yàn)證控件通常要認(rèn)證其他控件的有效性,因而必須和其他控件一起使用,它們都具有一個屬性ControlToValidate來指定要驗(yàn)證的控件,這個值是必需的,否則驗(yàn)證控件將會出錯393
27、.3 驗(yàn)證控件 名 稱描 述RequiredFieldValidator確保用戶不會跳過某一項(xiàng)CompareValidator使用比較運(yùn)算符(小于、等于、大于等)比較用戶的輸入與一個常量值或另一控件的屬性值RegularExpressionValidator檢查項(xiàng)與正則表達(dá)式定義的模式是否匹配。這種驗(yàn)證類型允許檢查可預(yù)知的字符序列,如社會保障號、電子郵件地址、電話號碼、郵政編碼等中的字符序列CustomValidator使用自己編寫的驗(yàn)證邏輯檢查用戶的輸入ValidationSummary在一個統(tǒng)一摘要中顯示頁上所有其他驗(yàn)證控件的錯誤信息RangeValidator檢查用戶的輸入是否在指定的上
28、下限內(nèi)??梢詸z查數(shù)字對、字母字符對和日期對的范圍。邊界可以表示為常數(shù)或從其他控件導(dǎo)出的值403.3 驗(yàn)證控件-示例【例】打開Visual Studio .NET新建一個Web應(yīng)用程序項(xiàng)目,命名為Validator。向Web窗體中添加標(biāo)簽控件、輸入控件和驗(yàn)證控件。依次放入5個標(biāo)簽控件,設(shè)定它們的Text屬性分別為“姓名”、“年齡”、“密碼”、“確認(rèn)密碼”和“E-mail”。在標(biāo)簽控件之后依次放入5個輸入框控件,它們的ID在默認(rèn)狀態(tài)下會自動設(shè)為TextBox1、TextBox2、TextBox3、TextBox4和TextBox5。設(shè)定TextBox3和TextBox4的TextMode屬性為Pa
29、ssword。在TextBox1、TextBox2、TextBox4和TextBox5控件后分別放入一個RequiredField Validator驗(yàn)證控件,分別將這些RequiredFieldValidatork控件的ErrMessage屬性設(shè)定為“姓名不能為空”、“年齡不能為空”、“密碼不能為空”和“E-mail不能為空”,ControlToValidate屬性分別設(shè)置為TextBox1、TextBox2、TextBox4和TextBox5。TextBox2后再放入一個RangeValidator驗(yàn)證控件其ErrMessage屬性設(shè)為“值不合法”,ControlToValidate屬性設(shè)
30、為TextBox2,MaximumValue屬性設(shè)為100,Minimum屬性設(shè)為1,Type屬性設(shè)為Integer。TextBox4后再放入一個CompareValidator控件,它的ErrMessage屬性設(shè)為“兩次輸入不一致”,ControlToCompare屬性設(shè)為TextBox3,ControlToValidtae屬性設(shè)為TextBox4。Text5后再放一個RegularExpressionValidator控件ErrMessage屬性設(shè)為“輸入不正確”,ControlToValidator屬性設(shè)為TextBox5,當(dāng)在屬性對話框選擇ValidationExpress屬性時會彈出
31、【正則表達(dá)式編輯器】對話框,從中選擇【Internet電子郵件地址】最后向窗體中添加一個Button控件和一個ValidationSummary控件。413.3 驗(yàn)證控件-示例RequiredFieldValidator控件保證它所驗(yàn)證控件的輸入不能為空RangeValidator控件保證了它所驗(yàn)證控件的輸入應(yīng)在一定的范圍內(nèi)。在本例中保證在TextBox2中輸入為1到100之間的整型值。 CompareValidator控件將它驗(yàn)證的控件的內(nèi)容與另一個控件或另一個值進(jìn)行比較,在本例中使用了ControlToCompare屬性,以此來表明需要與另一控件相比較,默認(rèn)的比較操作屬性O(shè)perator的
32、值是Equal(相等),這樣該控件的功能其實(shí)就是保證兩次密碼輸入相等。RegularExpressionValidator保證控件的輸入應(yīng)滿足特定的正則表達(dá)式規(guī)則,本例指定為“Internet電子郵件地址”,即要求TextBox5中要輸入一個電子郵件地址。這些驗(yàn)證控件的EnableClientScript現(xiàn)在都默認(rèn)為True,這就表明將生成瀏覽器腳本在客戶端進(jìn)行驗(yàn)證。運(yùn)行程序,在驗(yàn)證控件對應(yīng)的文本框中必須正確輸入,否則將會在驗(yàn)證控件的位置出現(xiàn)錯誤信息,在ValidationSummary控件中則會顯示出所有這些錯誤信息CustomValidator控件提供了用戶自定義的功能,當(dāng)上面的驗(yàn)證控件都
33、無法滿足要求的時候就需要CustomValidator控件了。它提供了自定義客戶端與服務(wù)器端驗(yàn)證的功能,它包含有一個ClientValidationFunction屬性和ServerValidate事件,可以分別與客戶端和服務(wù)器端進(jìn)行綁定,然后編寫滿足自己需要的驗(yàn)證函數(shù)423.3 驗(yàn)證控件-驗(yàn)證控件的使用 433.3 驗(yàn)證控件-正則表達(dá)式編輯器 443.3 驗(yàn)證控件-程序的運(yùn)行453.4 用戶控件 當(dāng)ASP.NET提供的控件都無法滿足要求的時候就需要自己編寫控件了,這些控件叫做用戶控件??梢允褂脙煞N方式來創(chuàng)建用戶控件一種方式是把以前編寫的Web頁面包裝成控件,這樣的控件稱為Web用戶控件另一種
34、方式是從.NET的某個框架類繼承一個新類用來生成控件,這樣的控件稱為Web自定義控件463.4 用戶控件-Web用戶控件先來介紹第一種方式,下面創(chuàng)建一個Web窗體,然后把它轉(zhuǎn)化成Web用戶控件的形式,接著再創(chuàng)建一個新的Web窗體來使用這個控件?!纠啃陆ㄒ粋€ASP.NET Web應(yīng)用程序,命名為MyControl,在窗體上放入一個標(biāo)簽控件、一個文本框控件和一個Button控件。雙擊Button控件將切換到代碼編輯對話框,在Button1_Click方法中填寫下列代碼:private void Button1_Click(object sender, System.EventArgs e)/改變
35、文本標(biāo)簽的內(nèi)容Label1.Text = Hello + TextBox1.Text;切換到Web窗體的HTML代碼對話框,將顯示出WebForm1.aspx文件的內(nèi)容?,F(xiàn)在依次進(jìn)行下面步驟,將Web頁面轉(zhuǎn)換成Web控件。(1)從文件中刪除標(biāo)簽、標(biāo)簽、標(biāo)簽及內(nèi)容、標(biāo)簽和標(biāo)簽。(2)將文件第一行的Page改為Control并把WebForm1.aspx.cs更名為WebForm1.ascx.cs473.4 用戶控件-Web用戶控件 483.4 用戶控件- Web用戶控件 (3)在解決方案對話框中選中WebForm1.aspx,右擊選擇【重命名】,將WebForm1.aspx的名字改為WebFor
36、m1.ascx,這時文件WebForm1.aspx.cs也會自動更名為WebForm1.ascx.cs。將WebForm1.ascx.cs中的public class WebForm1 : System.Web.UI.Page一行改為public class WebForm1 : System.Web.UI.UserControl(4)保存項(xiàng)目,Web用戶控件就完成了。這個Web用戶控件只實(shí)現(xiàn)了很簡單的功能。為使一個Web對話框變?yōu)榭丶仨毷紫葘⑵渲械捻撁嬖貏h除,其次由于Web用戶控件的擴(kuò)展名為ascx,因此也要將aspx擴(kuò)展名變?yōu)閍scx,最后Web用戶控件應(yīng)由用戶控件類派生。下面用一個新
37、的Web應(yīng)用程序項(xiàng)目來測試一下剛才生成的Web用戶控件。新建一個ASP.NET Web應(yīng)用程序,命名為UserControl。在解決方案資源管理器對話框內(nèi)的UserControl項(xiàng)上右擊,選擇【添加現(xiàn)有項(xiàng)】,彈出【添加現(xiàn)有項(xiàng)】對話框,文件類型中選擇【公用Web文件】,定位到MyControl目錄選定WebForm1.ascx,單擊【打開】按鈕。添加MyControl引用這時就把Web用戶控件添加到了UserControl項(xiàng)目中,在解決方案資源管理器內(nèi)單擊WebForm1.ascx,把它拖動到Web對話框中。Web對話框中就會出現(xiàn)剛才新建的Web用戶控件由于現(xiàn)在的控件沒有設(shè)計器的支持,因此在設(shè)計
38、對話框中沒有顯示出Web用戶控件的顯示界面。執(zhí)行這個項(xiàng)目,在文本框內(nèi)輸入“maj”,單擊按鈕,這時標(biāo)簽中就會顯示出“Hello maj”。整個頁面的功能其實(shí)都是由一個Web用戶控件提供的??梢詫⒏鼜?fù)雜的窗體組合在一起做成Web用戶控件,使用在項(xiàng)目里以達(dá)到代碼重用的目的493.4 用戶控件-添加現(xiàn)有項(xiàng)對話框 503.4 用戶控件-向窗體中添加Web用戶控件513.4 用戶控件-使用Web用戶控件 523.4 用戶控件-Web自定義控件 Web自定義控件是一種更方便、功能更強(qiáng)大的設(shè)置用戶控件的方式。它最終將編譯成DLL文件,可以方便地進(jìn)行發(fā)布?!纠啃陆ㄒ粋€項(xiàng)目,在右側(cè)【模板】欄內(nèi)選擇【W(wǎng)eb控件
39、庫】,將項(xiàng)目名稱改為MyCustomControl,單擊【確定】按鈕。using System;using System.Web.UI;using System.Web.UI.WebControls;using System.ComponentModel;namespace MyCustomControlDefaultProperty(Text),ToolboxData()public class WebCustomControl1 : System.Web.UI.WebControls.WebControl/ / 將此控件呈現(xiàn)給指定的輸出參數(shù)/ / 要寫出到的 HTML 編寫器 /輸出當(dāng)前時
40、間protected override void Render(HtmlTextWriter output)output.Write(DateTime.Now.ToString();533.4 用戶控件- Web自定義控件 上面的代碼實(shí)現(xiàn)了一個顯示出當(dāng)前時間的控件。當(dāng)控件呈現(xiàn)在頁面上時會調(diào)用Render方法,本例中當(dāng)前的時間就是在Render方法中輸出的。這個控件沒有公開任何的屬性和事件。保存項(xiàng)目,選擇【生成】|【生成MyCustomControl】命令,這將會在該項(xiàng)目對應(yīng)目錄的binDebug子目錄下生成名為MyCustomControl.dll的文件。這樣這個簡單的Web自定義控件就生成了
41、。現(xiàn)在演示如何使用這個控件。新建一個ASP.NET Web應(yīng)用程序項(xiàng)目,命名為UseCustomControl。下一步要把新建的控件加入到工具箱內(nèi),選擇【工具】|【選擇工具箱】命令單擊【瀏覽】按鈕,在彈出的對話框中選定CustomControl項(xiàng)目所在目錄,選定文件CustomControl.dll,單擊【確定】按鈕。這樣在Web的工具箱中就會出現(xiàn)一個新的控件。選定該控件并把它添加到窗體上。執(zhí)行這個項(xiàng)目。在瀏覽器中顯示出了當(dāng)前的時間。例子雖然簡單但是卻演示了Web自定義控件的基本生成方法,生成用戶自定義控件的過程都是一致的,如果綜合運(yùn)用.NET的類庫就可以實(shí)現(xiàn)更加復(fù)雜的自定義控件。如果想使控件
42、設(shè)計時更加美觀,可以將System.Design.dll引用到項(xiàng)目里,并從System.Web.UI.Design.ControlDesigner繼承一個新類,實(shí)現(xiàn)該類的GetDesignTimeHtml方法,并把它加入到自定義控件的屬性聲明中,這樣就可像普通Web服務(wù)器控件一樣在設(shè)計階段就可以顯示出外觀543.4 用戶控件 向工具箱中添加控件 553.4 用戶控件 添加到工具箱中的用戶自定義控件 563.4 用戶控件 用戶自定義控件的使用 574 創(chuàng)建Web服務(wù) 4.1 Web服務(wù) 4.2 一個簡單的Web服務(wù) 4.3 使用Web服務(wù)訪問數(shù)據(jù)庫 584.1 Web服務(wù) Web服務(wù)提供了一種調(diào)
43、用網(wǎng)絡(luò)應(yīng)用的新方法,剛一出現(xiàn)就表現(xiàn)出了極大的生命力,它也許會帶來網(wǎng)絡(luò)應(yīng)用程序的重大變革在Internet的發(fā)展中,如何使各種應(yīng)用系統(tǒng)有效集成一直是一個令人頭痛的問題。使用不同技術(shù)建立起來的Internet應(yīng)用系統(tǒng)無法互相通信,彼此的功能無法相互調(diào)用,造成了網(wǎng)絡(luò)資源的極大浪費(fèi)。雖然CORBA、DCOM/COM+等技術(shù)為此進(jìn)行了極大的努力,但目前仍然無法有效地解決問題,Web服務(wù)的出現(xiàn)給我們帶來了新的希望Web服務(wù)使用基于XML的消息協(xié)議SOAP,提供了規(guī)范的數(shù)據(jù)封包格式并且使用HTTP協(xié)議傳輸,從而可以方便地在各種異構(gòu)的應(yīng)用系統(tǒng)之間進(jìn)行通訊。同樣基于XML的WSDL用作Web服務(wù)的服務(wù)描述,它向
44、外公布了Web服務(wù)所提供服務(wù)的接口。UDDI則提供了Web服務(wù)的服務(wù)發(fā)現(xiàn)機(jī)制594.2 一個簡單的Web服務(wù) 下面來創(chuàng)建一個簡單的Web服務(wù)來演示它的基本組成?!纠縑isual Studio .NET為Web服務(wù)提供了強(qiáng)大的支持,借助它可以方便地進(jìn)行Web服務(wù)的開發(fā)。打開Visual Studio .NET,新建項(xiàng)目,在項(xiàng)目模板中選擇【ASP.NET Web服務(wù)】,命名為MyWebService。這時將出現(xiàn)設(shè)計對話框,現(xiàn)在切換到代碼編輯對話框,按下面的程序改變對話框中的代碼。using System;using System.Collections;using System.Componen
45、tModel;using System.Data;using System.Diagnostics;using System.Web;using System.Web.Services;namespace MyWebService/ Service1 的摘要說明/ / 604.2 一個簡單的Web服務(wù) /設(shè)定該Web服務(wù)的命名空間WebService(Namespace=)public class Service1 : System.Web.Services.WebServicepublic Service1()/CODEGEN:該調(diào)用是 ASP.NET Web 服務(wù)設(shè)計器所必需的Initia
46、lizeComponent();#region Component Designer generated code/Web 服務(wù)設(shè)計器所必需的private IContainer components = null;/ / 設(shè)計器支持所需的方法 - 不要使用代碼編輯器修改/ 此方法的內(nèi)容。/ private void InitializeComponent()/ / 清理所有正在使用的資源/ protected override void Dispose( bool disposing )if(disposing & components != null)components.Dispose(
47、);base.Dispose(disposing);614.2 一個簡單的Web服務(wù) #endregion/ WEB 服務(wù)示例/ HelloWorld() 示例服務(wù)返回字符串 Hello World/ 若要生成,請取消注釋下列行,然后保存并生成項(xiàng)目/ 若要測試此 Web 服務(wù),請按 F5 鍵/ 實(shí)現(xiàn)兩個數(shù)相加的Web服務(wù)WebMethodpublic int Add(int firstnumber, int secondnumber)return firstnumber+secondnumber;這樣就實(shí)現(xiàn)了一個簡單的Web服務(wù),它只提供了一項(xiàng)功能,計算兩個整數(shù)的和?,F(xiàn)在運(yùn)行程序來測試這個We
48、b服務(wù)。不過要注意Web服務(wù)并不是在運(yùn)行后的瀏覽器對話框中顯示的這樣,它本身只是提供給用戶的服務(wù),這里看到的只是ASP.NET提供的一個方便的測試界面。624.2 一個簡單的Web服務(wù) 測試Web服務(wù) 634.2 一個簡單的Web服務(wù) 在類Service1上加入一行WebService(Namespace=)表明該Web服務(wù)的命名空間,它用來和其他Web服務(wù)相區(qū)別。下面的Add方法上的WebMethod表明這是一個Web方法,這個方法的功能很簡單,只是將傳入的兩個數(shù)相加并返回結(jié)果。上面在瀏覽器中測試的就是該方法。644.2 一個簡單的Web服務(wù) 測試Add方法 654.2 一個簡單的Web服務(wù)
49、 Web服務(wù)調(diào)用結(jié)果 664.3 使用Web服務(wù)訪問數(shù)據(jù)庫 下面結(jié)合使用ADO.NET創(chuàng)建一個可訪問數(shù)據(jù)庫的Web服務(wù),同時編寫一個客戶端程序,用來調(diào)用這個Web服務(wù)?!纠啃陆?xiàng)目,在【模板】中選擇【ASP.NET Web服務(wù)】,將該項(xiàng)目命名為MyDataService。using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Data.SqlClient;using System.Diagnostics;using System.Web;using Sys
50、tem.Web.Services;namespace MyDataService/ / Service1 的摘要說明/ /指定該Web服務(wù)的命名空間WebService(Namespace=)public class Service1 : System.Web.Services.WebServicepublic Service1()/CODEGEN:該調(diào)用是 ASP.NET Web 服務(wù)設(shè)計器所必需的InitializeComponent();674.3 使用Web服務(wù)訪問數(shù)據(jù)庫 #region Component Designer generated code/Web 服務(wù)設(shè)計器所必需的pr
51、ivate IContainer components = null;/ / 設(shè)計器支持所需的方法 - 不要使用代碼編輯器修改此方法的內(nèi)容/ private void InitializeComponent()/ / 清理所有正在使用的資源/ protected override void Dispose( bool disposing )if(disposing & components != null)components.Dispose();base.Dispose(disposing);684.3 使用Web服務(wù)訪問數(shù)據(jù)庫 #endregion/建立一個sqlConnection連接S
52、QL Server數(shù)據(jù)庫public SqlConnection myConn = new SqlConnection(Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind); WebMethodpublic DataSet GetDataSet()/建立一個sqlDataAdapter取得products表內(nèi)容SqlDataAdapter myDA = new SqlDataAdapter(SELECT * FROM PRODUCTS, myConn);/新建一個數(shù)據(jù)集DataSet myDS = new DataSet();/填充數(shù)據(jù)集myDA.Fill(myDS);return myDS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 職工困難補(bǔ)助申請書
- 建筑機(jī)械設(shè)備項(xiàng)目可行性研究報告
- 2025年自動空氣洗瓶機(jī)項(xiàng)目投資可行性研究分析報告-20241226-194854
- 中國哈密瓜卷心酥項(xiàng)目投資可行性研究報告
- 醫(yī)學(xué)病理生理題庫
- 短視頻創(chuàng)作技巧教育類視頻的吸引力打造
- 成都市金牛區(qū)2024年七年級《英語》上冊期末試卷與參考答案
- 新版人教PEP版三年級下冊英語課件 Unit 4 Part A 第2課時
- 現(xiàn)代企業(yè)的網(wǎng)絡(luò)媒體公關(guān)策略及執(zhí)行
- 土建質(zhì)量員??荚囶}含答案
- 高支模專項(xiàng)施工方案(專家論證)
- 《物流與供應(yīng)鏈管理-新商業(yè)、新鏈接、新物流》配套教學(xué)課件
- 房地產(chǎn)標(biāo)準(zhǔn)踩盤表格模板
- 物聯(lián)網(wǎng)項(xiàng)目實(shí)施進(jìn)度計劃表
- 學(xué)校校園安全巡邏情況登記表
- 光纜線路工程段終版施工圖
- 礦井年度災(zāi)害預(yù)防和處理計劃
- 畢業(yè)論文-基于Java Web的模擬駕??荚囅到y(tǒng)設(shè)計與實(shí)現(xiàn)
- MDD指令附錄一 基本要求檢查表2013版
- 新部編人教版四年級下冊道德與法治全冊教案(教學(xué)設(shè)計)
- 人美版高中美術(shù)選修:《繪畫》全冊課件【優(yōu)質(zhì)課件】
評論
0/150
提交評論