ASP.NET立即上手教程(3)_.Net教程
推薦:ASP.NET立即上手教程(2)什么是asp.net的Web Forms Asp.net Web Forms 頁(yè)面框架是可升級(jí)的通用語(yǔ)言運(yùn)行時(shí)刻(CLR)程序模型,用來(lái)在服務(wù)器端動(dòng)態(tài)生成WEB頁(yè)面。(美國(guó)人說(shuō)話(huà)就是別扭,其實(shí)Web Forms就是asp.net編寫(xiě)的頁(yè)
處理服務(wù)器控件事件
每一個(gè)asp.net服務(wù)器控件都具有對(duì)象模型的特點(diǎn),包含屬性、方法和事件。Asp.net開(kāi)發(fā)者可以使用這個(gè)對(duì)象模型來(lái)動(dòng)態(tài)修改頁(yè)面,以及與頁(yè)面交互。
下面的例子演示了asp.net頁(yè)面開(kāi)發(fā)者如何通過(guò)處理<asp:button runat=server>控件的OnClick事件,來(lái)操縱<asp:label runat=server> 控件的Text 屬性。
這個(gè)簡(jiǎn)單的例子在功能上等于前面介紹的"Intro3" 例子。然而,你卻可以發(fā)現(xiàn)基于服務(wù)器控件的這個(gè)版本是多么的簡(jiǎn)單而清晰!
使用自定義的服務(wù)器端控件
ASP.NET提供了45個(gè)內(nèi)置的服務(wù)器控件以供使用 (詳細(xì)內(nèi)容參閱 Web Forms 控件參考)。除了使用內(nèi)置的ASP.NET 控件以外,開(kāi)發(fā)者也可以使用第三方提供的控件。
下面的例子展示了一個(gè)簡(jiǎn)單的日歷控件(Calenda)。這個(gè)控件在頁(yè)面中使用<acme:calendar runat=server>標(biāo)簽來(lái)聲明。請(qǐng)注意在頁(yè)面頂端的<% Register %>使用TagPrefix注冊(cè)"Acme",使用Namespace說(shuō)明執(zhí)行控件的名稱(chēng)空間。Asp.net頁(yè)面分析器將在運(yùn)行時(shí)刻使用這個(gè)名稱(chēng)空間來(lái)裝載Calendar控間類(lèi)的實(shí)例。
在這個(gè)例子中,日歷控件被設(shè)計(jì)為在Internet Explorer 5.5以上版本中執(zhí)行“高級(jí)運(yùn)行”,在其他瀏覽器上執(zhí)行“低級(jí)運(yùn)行”。在asp.net提供的內(nèi)置服務(wù)器控件中,都可以實(shí)現(xiàn)這種對(duì)瀏覽器版本的監(jiān)測(cè)。對(duì)于IE5.5以上版本,他生成DHTML輸出。DHTML輸出不要求服務(wù)器與客戶(hù)端的循環(huán)往復(fù)。對(duì)于其他版本的瀏覽器,這個(gè)控件生成標(biāo)準(zhǔn)的HTML3.2文檔。在交互的時(shí)候,需要客戶(hù)端和服務(wù)器端的循環(huán)往復(fù)。
重要提示:頁(yè)面設(shè)計(jì)者在編寫(xiě)代碼的時(shí)候,不需要考慮瀏覽器在訪(fǎng)問(wèn)頁(yè)面的時(shí)候,是“高級(jí)運(yùn)行”還是“低級(jí)運(yùn)行”。Calendar 控件自己封裝了處理不同瀏覽器請(qǐng)求的能力。
列表、數(shù)據(jù)、和數(shù)據(jù)綁定
ASP.NET內(nèi)置了一套數(shù)據(jù)表格和列表的控件,可以提供自定義的用戶(hù)接口驅(qū)動(dòng),來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)或其它數(shù)據(jù)源的請(qǐng)求。例如,下面的例子演示了<asp:datagrid runat=server>控件如何使用SQL數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)言來(lái)實(shí)現(xiàn)對(duì)BOOK信息集合的數(shù)據(jù)綁定。
<asp:datagrid runat=server> DataGrid控件使用傳統(tǒng)的表格接口,提供了一種簡(jiǎn)單而快速的顯示數(shù)據(jù)結(jié)果的途徑。此外,ASP.NET開(kāi)發(fā)者也可以使用<asp:DataList runat=server> DataList控件以及自定義的ItemTemplate模板來(lái)定制數(shù)據(jù)的顯示方式。
注意到<asp:datalist runat=server>控件允許最終用戶(hù)精確的控制列表中每一個(gè)項(xiàng)目的結(jié)構(gòu)和外觀(guān)顯示(使用ItemTemplate模板屬性)。該控件同時(shí)自動(dòng)的處理兩列之間內(nèi)容的換行(用戶(hù)可以通過(guò)它的RepeatColumns屬性來(lái)控制列的數(shù)目)
下面的例子提供了一種<asp:datalist runat=server>控件隔行交替顯示的樣子。
注意這里的控件、數(shù)據(jù)模型和頁(yè)面用戶(hù)都與前一個(gè)例子相同。差別在于,本例在代碼中聲明了其他的模板。
表單驗(yàn)證控件
ASP.NET Web Forms 頁(yè)框架提供了一套服務(wù)器驗(yàn)證控件,它容易使用而功能強(qiáng)大,用來(lái)檢查客戶(hù)端表單輸入的錯(cuò)誤,并且(如果必要的話(huà))可以向用戶(hù)顯示提示信息。
在頁(yè)面中增加服務(wù)器驗(yàn)證控件就像使用其他服務(wù)器控件一樣。不同的驗(yàn)證情況有不同的驗(yàn)證控件,例如輸入范圍檢查或者模式匹配等等。使用RequiredFieldValidator驗(yàn)證控件可以確保用戶(hù)不會(huì)跳過(guò)一個(gè)應(yīng)該輸入數(shù)據(jù)的字段。
下面的例子演示了如何在頁(yè)面中使用<asp:requiredfieldvalidator runat=server> 控件來(lái)驗(yàn)證TextBox 和 DropDownList 控件的內(nèi)容。
C# Intro11.aspx
[運(yùn)行] | [源代碼]
注意驗(yàn)證控件也提供了“高級(jí)運(yùn)行”和“低級(jí)運(yùn)行”支持。高版本瀏覽器模式在服務(wù)器端和客戶(hù)端執(zhí)行(使用JAVA腳本和DHTML),低板本瀏覽器模式僅僅在服務(wù)器端執(zhí)行驗(yàn)證。兩種情況下的程序模式是一樣的。
注意,ASP.NET頁(yè)面開(kāi)發(fā)者可以在運(yùn)行時(shí)可隨時(shí)檢查Page.IsValid屬性,來(lái)確定是否該頁(yè)面的所有驗(yàn)證控件都通過(guò)。這就提供了是否進(jìn)行商務(wù)邏輯處理的一個(gè)簡(jiǎn)單的方法。例如,下面的例子對(duì)特定分類(lèi)執(zhí)行數(shù)據(jù)庫(kù)查詢(xún)的時(shí)候,首先執(zhí)行Page.IsValid檢查。
Web Forms代碼分離
ASP.NET支持兩種創(chuàng)作動(dòng)態(tài)頁(yè)面的方法。第一種是如前面的例子中演示的那樣,頁(yè)面代碼在同一個(gè).aspx文件中聲明。另一個(gè)方法----人們熟知的代碼分離,可以讓頁(yè)面代碼更加整潔,把程序代碼從HTML內(nèi)容中分離出來(lái),成為一個(gè)完整的單獨(dú)的文件。
下面的例子演示了利用代碼分離技術(shù)編寫(xiě)ASP.NET頁(yè)面
本章小結(jié)
1. ASP.NET提供了一種簡(jiǎn)單而功能強(qiáng)大的方法,來(lái)建立動(dòng)態(tài)WEB用戶(hù)接口
2. ASP.NET Web Forms 頁(yè)可以自動(dòng)適應(yīng)任何瀏覽器客戶(hù)(不需要腳本庫(kù)或者COOKIE的支持)
3. ASP.NET Web Forms 頁(yè)提供與現(xiàn)有ASP頁(yè)面的語(yǔ)法兼容
4. ASP.NET 服務(wù)器控件提供了封裝常用功能的簡(jiǎn)易方法。
5. ASP.NET 提供了45個(gè)內(nèi)置的服務(wù)器控件.開(kāi)發(fā)者也可以使用第三方提供的控件。
6. ASP.NET 服務(wù)器控件能夠自動(dòng)設(shè)計(jì)高級(jí)動(dòng)態(tài)模式和低級(jí)瀏覽器HTML模式
7. ASP.NET 模板可以輕松的定制列表服務(wù)器控件的外觀(guān),從而定制頁(yè)面數(shù)據(jù)顯示的外觀(guān)。
8. ASP.NET 驗(yàn)證控件可以方便的進(jìn)行客戶(hù)端或服務(wù)器端數(shù)據(jù)的驗(yàn)證
分享:ASP.NET立即上手教程(1)一、開(kāi)始 1、介紹 歡迎光臨ASP.NET立即上手教程。 ASP.NET立即上手教程是由一系列實(shí)例和支持解說(shuō)構(gòu)成的,他的目的是為了讓開(kāi)發(fā)者快速理解ASP.NET的語(yǔ)法、框架以及ASP.NET網(wǎng)絡(luò)應(yīng)用程序框架
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶(hù)端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- 揭秘ASP.NET常用的26個(gè)優(yōu)化性能方法
- 在ASP.NET程序中創(chuàng)建唯一序號(hào)
- asp.net文字轉(zhuǎn)成圖片
- asp.net回發(fā)或回調(diào)參數(shù)無(wú)效解決方法
- 怎樣在ASP.net中做網(wǎng)站訪(fǎng)問(wèn)量統(tǒng)計(jì)
- ASP.NET筆記之 ListView 與 DropDownList的使用
- 如何在.Net Micro Framework中顯示漢字
- 淺析微軟 ASP.NET 環(huán)境下的頁(yè)面驗(yàn)證控件
- 您可能不知道的.Net2.0小技巧
- ASP.NET生成靜態(tài)HTML頁(yè)面并分別按年月目錄存放
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-ASP.NET立即上手教程(3)
。