国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET立即上手教程(6)

2024-07-10 13:12:19
字體:
供稿:網(wǎng)友

表單驗證服務(wù)器控件

驗證介紹

網(wǎng)絡(luò)形成框架包括一套易用而功能強大的用于驗證的服務(wù)器控件,用來檢查輸入表單的錯誤,并且在必要的時候,向用戶顯示提示信息。將驗證控件添加到設(shè)計圈套表格,就像添加其他服務(wù)器控件一樣。驗證控件有不同的驗證類型,例如范圍檢查或者模式匹配,添加一個requiredfieldvalidator 控件可以保證用戶不能跳過某一個要求輸入內(nèi)容的字段。你可以對一個輸入控件組合若干個驗證控件。例如,你可能要求某一字段不能為空,并且必須輸入某一個范圍的值。驗證控件與服務(wù)器控件的有限子集協(xié)同工作。也就是說,對于不同的控件,可能需要驗證不同屬性的值。

驗證控件類型

最簡單的驗證表單是要求輸入字段。不管用戶在字段中輸入了任何值,它就是驗證通過的。如果頁面中所有的字段都驗證通過,那么頁面也是驗證通過的(page is valid)。下面的例子說明了requiredfieldvalidator驗證控件的使用。

特定的驗證情況需要不同的驗證控件,例如范圍檢查或者模式匹配。

客戶端驗證

一般來說,驗證控間總是在服務(wù)器端執(zhí)行驗證檢查。 然而,如果用戶正在使用一個支持 dhtml 的瀏覽器工作,驗證控間也能使用客戶端腳本來驗證。藉由客戶端確認,當表單提交給服務(wù)器的時候,客戶端的任何檢測的錯誤都可以發(fā)現(xiàn)。當任何一個驗證控間發(fā)現(xiàn)錯誤的時候,提交到服務(wù)器的表單都會取消,同時顯示驗證控間的text 屬性。這就允許用戶在表單提交到服務(wù)器之前,校正輸入的錯誤。當包含錯誤的字段失去焦點的時候,該字段馬上會被重新驗證。這樣就給用戶提供了一種豐富的、交互式的驗證過程。

注意:web forms頁框架總是在服務(wù)器端執(zhí)行驗證,即使驗證已經(jīng)在客戶端執(zhí)行也是如此。這有助于防止冒名頂替和預(yù)訂事務(wù)來通過驗證。

默認情況下允許客戶端驗證。如果客戶端條件允許,高版本瀏覽器驗證模式將自動執(zhí)行。要想禁止客戶端驗證,設(shè)置頁面的 clienttarget 屬性為"downlevel"("uplevel" 強制客戶端驗證)

顯示驗證錯誤信息

當用戶的輸入開始處理(例如,當表單已經(jīng)提交),web forms頁面框架傳遞用戶的輸入到相關(guān)聯(lián)的驗證控件。驗證控件測試用戶的輸入,并且設(shè)置屬性來標志輸入是否通過驗證測試。所有的驗證控件運行完畢之后,才設(shè)置頁面的isvalid屬性。如果任何一個驗證控件顯示了驗證失敗,整個頁面的驗證也是無效的。

如果驗證控件監(jiān)測到錯誤,該控件或者頁面上的validationsummary 控件就會在頁面上顯示一條錯誤提示信息。validationsummary 控件顯示錯誤提示的前提是頁面的isvalid等于false。(也就是說,任何一個驗證控件沒有通過,都會激活validationsummary),它可以監(jiān)測到每一個驗證控件的驗證錯誤,并且把所有的錯誤一次全部顯示出來。下面的例子演示了validationsummary控件如何進行錯誤提示的。

使用比較驗證控件comparevalidator

comparevalidator服務(wù)器驗證控件用來比較兩個控件的值。它使用三個關(guān)鍵屬性來進行它的驗證。controltovalidate 和 controltocompare 包含要比較的值,operator 定義了要進行的比較類型---例如,等于或者不等于等等。comparevalidator通過對表達式求值來執(zhí)行驗證,就象下面這樣:

( controltovalidate controltocompare )

如果表達式的值為true,驗證結(jié)果為通過。

下面的例子說明了如何使用 comparevalidator 控件

使用范圍驗證控件 rangevalidator

rangevalidator 服務(wù)器控件測試輸入值是否在一個給定范圍之內(nèi)。rangevalidator 使用三個關(guān)鍵屬性來執(zhí)行驗證。 controltovalidate 包含驗證的對象,minimumvalue 和 maximumvalue 定義了有效范圍的最小值和最大值。

下面的例子顯示了如何使用rangevalidator 控件。

使用正則表達式驗證控件regularexpressionvalidator

regularexpressionvalidator 服務(wù)器控件用來檢查用戶輸入是否與正則表達式定義的模式匹配。這個控件允許你檢查可預(yù)見的字符串系列,例如社會保障號碼、電子郵件地址、電話號碼和郵政編碼等等。

regularexpressionvalidator 使用兩個關(guān)鍵屬性來執(zhí)行驗證。controltovalidate 包含要驗證的控件對象, validationexpression 包含用來匹配的正則表達式。

原教材對正則表達式說得比較少,這里我來補充一下:

正則表達式是一種功能強大的字符串定義規(guī)則,例如dos下熟悉的“*” 和“?” 他最早在unix中引入。在asp.net中,他的格式是[可接受字符]{ 范圍}。舉例來說,[a-z]{ 3,7}表示至少含有三個字符,最多含有7個字符,其中字符只能是’a’~’z’的范圍,如”krpam”是合法的,而”12fe3”或者”5w”是不合法的。

在[]里面除了?-?的定義之外,也可以直接寫出可接受的字符,例如[ourasp]表示只接受’o’、’u’、’r’、’a’、’s’、’p’這幾個字符,而^表示反集合,例如[^aurasp],表示除了’o’、’u’、’r’、’a’、’s’、’p’以外,任何字符都接受。如果表示可接受任意字符,使用“.”來表示。例如, .{ 0,} 表示可以接受任意多個任意字符。

在{ }里面,除了常用的{ 3}、{ 2-13}這樣的格式以外,還有以下常用的格式:{ n,} 表示至少輸入n個字符。

“|” 符號表示or(或),例如[a-za-z]{ 3}|[0.9]{ 3}表示可接受的字符是3個英文字母或者3個數(shù)字字符。請注意他與[a-za-z0-9]{ 3}的區(qū)別。為了閱讀上的方便,我們通常會把含有“|”符號的字符串放在()中,例如([a-za-z]{ 3}|[0.9]{ 3})上述的[]{ }.()|都是正則表達式中的特殊符號。如果希望可接受的字符串中包含這些字符,必須在這些字符前面加上斜線 /。例如,“/.{ 3}”,表示必須輸入3個”.”。

下面的例子演示如何使用 validationexpression控件。

使用自定義驗證控件 custom validation

customvalidator 服務(wù)器控件調(diào)用用戶自定義函數(shù)來執(zhí)行一個標準驗證控件無法處理得驗證。該自定義函數(shù)既可以在服務(wù)器端執(zhí)行,也可以在客戶端腳本(如vbscript 或jscript)。對于客戶端自定義驗證,自定義函數(shù)名稱必須在clientvalidationfunction 屬性中明確指出。自定義函數(shù)必須使用這樣的參數(shù)格式:

function myvalidator(source, arguments)

注意 source 參數(shù)是客戶端customvalidator ,arguments參數(shù)是帶有兩個屬性value 和 isvalid的對象, value 屬性對象的值, isvalid 屬性是一個布爾值,用來設(shè)置返回的驗證結(jié)果。

對于服務(wù)器端自定義驗證,將你的自定義驗證放置在驗證控件的onservervalidate 中。

下面的例子演示了如何使用customvalidator 控件。

使用全部驗證控件的例子

下面的例子演示了一個典型的注冊表單,其中使用了本章討論的所有驗證控件

本章小結(jié)

1、驗證控件可以用來檢驗web forms 頁面的任何輸入。

2、對于一個給定的輸入字段,可以使用若干個驗證控件來檢驗。

3、除了服務(wù)器端驗證以外,也可以使用客戶端驗證來提高form的可用性。

4、customvalidator 控件可以讓用戶自定義驗證規(guī)則。

 



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 天峨县| 三台县| 琼海市| 武陟县| 蒙阴县| 资阳市| 富川| 林芝县| 霍城县| 顺昌县| 孟津县| 利川市| 泗洪县| 英山县| 岱山县| 介休市| 阜南县| 五指山市| 密云县| 德化县| 乐安县| 丹凤县| 长海县| 延安市| 普陀区| 江门市| 中宁县| 吕梁市| 石景山区| 玛曲县| 阳谷县| 奉贤区| 阿瓦提县| 刚察县| 赣州市| 织金县| 体育| 七台河市| 额敏县| 清涧县| 乌拉特中旗|