推薦:ASP.NET立即上手教程(2)什么是asp.net的Web FormsAsp.net Web Forms 頁(yè)面框架是可升級(jí)的通用語(yǔ)言運(yùn)行時(shí)刻(CLR)程序模型,用來(lái)在服務(wù)器端動(dòng)態(tài)生成WEB頁(yè)面。(美國(guó)人說(shuō)話就是別扭,其實(shí)Web Forms就是asp.net編寫的頁(yè)
處理服務(wù)器控件事件
每一個(gè)asp.net服務(wù)器控件都具有對(duì)象模型的特點(diǎn),包含屬性、方法和事件。Asp.net開發(fā)者可以使用這個(gè)對(duì)象模型來(lái)動(dòng)態(tài)修改頁(yè)面,以及與頁(yè)面交互。
下面的例子演示了asp.net頁(yè)面開發(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 控件以外,開發(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í)行控件的名稱空間。Asp.net頁(yè)面分析器將在運(yùn)行時(shí)刻使用這個(gè)名稱空間來(lái)裝載Calendar控間類的實(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ù)器與客戶端的循環(huán)往復(fù)。對(duì)于其他版本的瀏覽器,這個(gè)控件生成標(biāo)準(zhǔn)的HTML3.2文檔。在交互的時(shí)候,需要客戶端和服務(wù)器端的循環(huán)往復(fù)。
重要提示:頁(yè)面設(shè)計(jì)者在編寫代碼的時(shí)候,不需要考慮瀏覽器在訪問(wèn)頁(yè)面的時(shí)候,是“高級(jí)運(yùn)行”還是“低級(jí)運(yùn)行”。Calendar 控件自己封裝了處理不同瀏覽器請(qǐng)求的能力。
列表、數(shù)據(jù)、和數(shù)據(jù)綁定
ASP.NET內(nèi)置了一套數(shù)據(jù)表格和列表的控件,可以提供自定義的用戶接口驅(qū)動(dòng),來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)或其它數(shù)據(jù)源的請(qǐng)求。例如,下面的例子演示了<asp:datagrid runat=server>控件如何使用SQL數(shù)據(jù)庫(kù)查詢語(yǔ)言來(lái)實(shí)現(xiàn)對(duì)BOOK信息集合的數(shù)據(jù)綁定。
<asp:datagrid runat=server> DataGrid控件使用傳統(tǒng)的表格接口,提供了一種簡(jiǎn)單而快速的顯示數(shù)據(jù)結(jié)果的途徑。此外,ASP.NET開發(fā)者也可以使用<asp:DataList runat=server> DataList控件以及自定義的ItemTemplate模板來(lái)定制數(shù)據(jù)的顯示方式。
注意到<asp:datalist runat=server>控件允許最終用戶精確的控制列表中每一個(gè)項(xiàng)目的結(jié)構(gòu)和外觀顯示(使用ItemTemplate模板屬性)。該控件同時(shí)自動(dòng)的處理兩列之間內(nèi)容的換行(用戶可以通過(guò)它的RepeatColumns屬性來(lái)控制列的數(shù)目)
下面的例子提供了一種<asp:datalist runat=server>控件隔行交替顯示的樣子。
注意這里的控件、數(shù)據(jù)模型和頁(yè)面用戶都與前一個(gè)例子相同。差別在于,本例在代碼中聲明了其他的模板。
表單驗(yàn)證控件
ASP.NET Web Forms 頁(yè)框架提供了一套服務(wù)器驗(yàn)證控件,它容易使用而功能強(qiáng)大,用來(lái)檢查客戶端表單輸入的錯(cuò)誤,并且(如果必要的話)可以向用戶顯示提示信息。
在頁(yè)面中增加服務(wù)器驗(yàn)證控件就像使用其他服務(wù)器控件一樣。不同的驗(yàn)證情況有不同的驗(yàn)證控件,例如輸入范圍檢查或者模式匹配等等。使用RequiredFieldValidator驗(yàn)證控件可以確保用戶不會(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ù)器端和客戶端執(zhí)行(使用JAVA腳本和DHTML),低板本瀏覽器模式僅僅在服務(wù)器端執(zhí)行驗(yàn)證。兩種情況下的程序模式是一樣的。
注意,ASP.NET頁(yè)面開發(fā)者可以在運(yùn)行時(shí)可隨時(shí)檢查Page.IsValid屬性,來(lái)確定是否該頁(yè)面的所有驗(yàn)證控件都通過(guò)。這就提供了是否進(jìn)行商務(wù)邏輯處理的一個(gè)簡(jiǎn)單的方法。例如,下面的例子對(duì)特定分類執(zhí)行數(shù)據(jù)庫(kù)查詢的時(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ù)編寫ASP.NET頁(yè)面
本章小結(jié)
1. ASP.NET提供了一種簡(jiǎn)單而功能強(qiáng)大的方法,來(lái)建立動(dòng)態(tài)WEB用戶接口
2. ASP.NET Web Forms 頁(yè)可以自動(dòng)適應(yīng)任何瀏覽器客戶(不需要腳本庫(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ù)器控件.開發(fā)者也可以使用第三方提供的控件。
6. ASP.NET 服務(wù)器控件能夠自動(dòng)設(shè)計(jì)高級(jí)動(dòng)態(tài)模式和低級(jí)瀏覽器HTML模式
7. ASP.NET 模板可以輕松的定制列表服務(wù)器控件的外觀,從而定制頁(yè)面數(shù)據(jù)顯示的外觀。
8. ASP.NET 驗(yàn)證控件可以方便的進(jìn)行客戶端或服務(wù)器端數(shù)據(jù)的驗(yàn)證
分享:ASP.NET立即上手教程(1)一、開始1、介紹歡迎光臨ASP.NET立即上手教程。ASP.NET立即上手教程是由一系列實(shí)例和支持解說(shuō)構(gòu)成的,他的目的是為了讓開發(fā)者快速理解ASP.NET的語(yǔ)法、框架以及ASP.NET網(wǎng)絡(luò)應(yīng)用程序框架
新聞熱點(diǎn)
疑難解答
圖片精選