




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
5.1驗(yàn)證控件的工作流程
5.2驗(yàn)證控件的常用屬性
5.3
RequiredFieldValidator控件
5.4CompareValidator控件
5.5RangeValidator控件
5.6RegularExpressionValidator控件
5.7CustomValidator控件
5.8ValidationSummary控件
本章小結(jié)
訓(xùn)練任務(wù)在對(duì)“用戶注冊(cè)”頁面進(jìn)行驗(yàn)證時(shí),我們需要驗(yàn)證的內(nèi)容包括:用戶名是否為空,兩次輸入的密碼是否一致,年齡是否在一定范圍內(nèi)等。為了解決這些問題,我們首先介紹ASP.NET為用戶提供的六個(gè)驗(yàn)證控件,它們分別是:RequiredFieldValidator、RangeValidator、RegularExpressionValidator、CompareValidator、CustomValidator和ValidationSummary,如圖5-1所示。這些控件位于“工具箱”的“驗(yàn)證”面板中,它們均屬于Web服務(wù)器控件,可以在Web頁面中直接使用這些控件。圖5-1ASP.NET提供的六個(gè)驗(yàn)證控件5.1驗(yàn)證控件的工作流程我們可以使用ASP.NET中的驗(yàn)證控件在Web窗體中驗(yàn)證用戶的輸入。驗(yàn)證控件可以提供常用的驗(yàn)證操作,例如比較兩個(gè)值以及驗(yàn)證一個(gè)值是否位于直徑范圍內(nèi)等。另外,也可以提供自己的驗(yàn)證操作并且顯示自定義的錯(cuò)誤信息。驗(yàn)證控件可以和任何服務(wù)器控件一起使用,而且每個(gè)驗(yàn)證控件都要引用一個(gè)服務(wù)器輸入控件。處理用戶的輸入時(shí),頁面框架會(huì)把用戶輸入的內(nèi)容傳遞給相應(yīng)的驗(yàn)證控件,然后驗(yàn)證控件檢查用戶的輸入并且根據(jù)檢查結(jié)果設(shè)置相應(yīng)的屬性(指出驗(yàn)證是否通過)。在所有的控件驗(yàn)證都被調(diào)用之后,如果存在錯(cuò)誤,則整個(gè)頁面被設(shè)置為無效并顯示相應(yīng)的錯(cuò)誤信息。
可以在代碼中測(cè)試整個(gè)頁面或單個(gè)驗(yàn)證控件的狀態(tài),當(dāng)任意一個(gè)驗(yàn)證控件沒有通過時(shí),就會(huì)跳過后續(xù)的操作把頁面返回給用戶,檢測(cè)到錯(cuò)誤的驗(yàn)證控件會(huì)產(chǎn)生一個(gè)錯(cuò)誤信息并顯示在頁面上。
驗(yàn)證控件通常不顯示在頁面中,但是如果它們檢測(cè)到錯(cuò)誤,則將產(chǎn)生指定的錯(cuò)誤信息,這個(gè)錯(cuò)誤信息可以用多種方式來顯示,我們通常把驗(yàn)證控件放在被驗(yàn)證控件的旁邊,以顯示錯(cuò)誤信息。5.2驗(yàn)證控件的常用屬性驗(yàn)證控件的常用屬性如下所述。
1.ControlToValidate屬性該屬性用來指定或獲取將被驗(yàn)證的控件,即與該驗(yàn)證控件相關(guān)聯(lián)的其他控件。通過這個(gè)屬性可指定被驗(yàn)證的ID,例如下面的代碼:
Validator1.controltovalidate="TextBox1";當(dāng)然,每個(gè)驗(yàn)證控件也可以通過選擇的方式綁定需要驗(yàn)證的控件,如圖5-2所示。圖5-2通過選擇的方式綁定需要驗(yàn)證的控件
2.Display屬性
這個(gè)屬性用來獲取或設(shè)置控件顯示錯(cuò)誤信息的方式。顯示錯(cuò)誤信息的方式如表5-1所示。其中,默認(rèn)為Static顯示方式。例如下面的代碼:
Validator1.display=validatordisplay.dynamic;
3.EnableClientScript屬性
這個(gè)屬性表示是否激活客戶端的驗(yàn)證。如果該屬性為True,則執(zhí)行客戶端的驗(yàn)證,不論客戶端驗(yàn)證是否處于激活狀態(tài),驗(yàn)證控件總是在服務(wù)器端執(zhí)行驗(yàn)證過程,但是客戶端的驗(yàn)證不需要發(fā)送到服務(wù)器端進(jìn)行處理,所以可以提高性能。
4.Enable屬性
這個(gè)屬性表示驗(yàn)證控件是否處于激活狀態(tài)??梢允褂眠@個(gè)屬性來動(dòng)態(tài)地激活或禁止某個(gè)驗(yàn)證過程。
5.Errormessage屬性
這個(gè)屬性用來獲取或設(shè)置需要在Web頁面上顯示的驗(yàn)證控件的錯(cuò)誤信息。例如下面的代碼:
Validator1.Errormessage=“必須要輸入用戶的姓名”;
6.IsValid屬性
這個(gè)屬性表示被驗(yàn)證的控件是否通過了驗(yàn)證。例如下面的代碼:
//如果關(guān)聯(lián)控件通過了驗(yàn)證
if(validator1.IsValid==true)
{
…
}提示:Web窗體對(duì)象(Page對(duì)象)中也包含一個(gè)Validate方法,可以用它來測(cè)試整個(gè)頁面的有效性。只有當(dāng)頁面中的所有驗(yàn)證控件都通過了驗(yàn)證,頁面的這個(gè)屬性才會(huì)被設(shè)置為True。這是ASP.NET技術(shù)出于安全角度考慮的,而初學(xué)者為了方便,在發(fā)現(xiàn)有驗(yàn)證錯(cuò)誤時(shí)都會(huì)在源代碼的開頭加上“ValidateRequest=false”這句話來處理驗(yàn)證錯(cuò)誤。這樣雖然不再報(bào)錯(cuò),但Web站點(diǎn)的安全性卻降低了。5.3
RequiredFieldValidator控件
RequiredFieldValidator控件可以翻譯為必須字段驗(yàn)證控件,其作用是保證與它相關(guān)聯(lián)的控件中必須要輸入內(nèi)容才能通過驗(yàn)證。除了5.2節(jié)所討論的屬性外,RequiredFieldValidator控件中還包含一個(gè)InitialValue屬性。這個(gè)屬性用來指定相關(guān)聯(lián)輸入控件的初始值,其默認(rèn)值為空字符串,即string.Empty。指定初始值時(shí),輸入控件中的值必須與初始值不同才能通過驗(yàn)證。提示:輸入控件中的值和初始值在移除前綴和后綴空格之后進(jìn)行比較,如果相同,則不會(huì)通過驗(yàn)證,只有不同才會(huì)通過驗(yàn)證。例如下面代碼:
RequiredFieldvalidator.Initaiblvalue="Enteravalue";5.4CompareValidator控件
CompareValidator控件可以翻譯為比較驗(yàn)證控件。在ASP.NET中,可以使用兩種類型的比較驗(yàn)證控件:CompareValidator控件和RangeValidator控件。這兩種比較驗(yàn)證控件中都包含一個(gè)Type屬性。Type屬性用來指定進(jìn)行比較值的類型。提示:當(dāng)被驗(yàn)證控件的值為空(即沒有輸入內(nèi)容)時(shí),比較驗(yàn)證控件不會(huì)執(zhí)行比較過程,并且會(huì)通過驗(yàn)證。
CompareValidator驗(yàn)證控件用來將相關(guān)聯(lián)的輸入控件(通過CompareValidator的ControlValidate屬性設(shè)置)的值與一個(gè)指定的值(通過CompareValidator驗(yàn)證控件的ValueToCompare屬性指定)或者另一個(gè)控件的值(通過CompareValidator驗(yàn)證控件的ControlToCompare屬性指定)進(jìn)行比較。圖5-3和表5-2分別顯示了Operator屬性的設(shè)置。圖5-3選擇Operator類型注意:ValueToCompare屬性和ControlToCompare屬性通過字符串來指定被比較的值或被比較的輸入控件的ID。但是不要同時(shí)設(shè)置這兩個(gè)屬性,如果同時(shí)設(shè)置了這兩個(gè)屬性,則被驗(yàn)證控件將會(huì)與ControlToCompare屬性指定的控件進(jìn)行比較。例如下面的代碼:
CompareValidator1.ControlToValidate=“TextBox1”;
CompareValidator1.ControlToCompare=“TextBox2”;
//
或
//CompareValidator1.ValueToCompare=“12345”;
CompareValidator1.Opreator=ValidationCompareOperator.GreaterThan;
CompareValidator1.Validate();//執(zhí)行驗(yàn)證過程5.5RangeValidator控件
RangeValidator控件可以翻譯為范圍驗(yàn)證控件,它可以用來驗(yàn)證相關(guān)聯(lián)的輸入控件的值是否在指定范圍內(nèi)??梢酝ㄟ^RangeValidator驗(yàn)證控件的MaximumValue和MinimumValue屬性來指定值的范圍,如圖5-4所示。圖5-4設(shè)置RangeValidator的范圍下面的代碼實(shí)現(xiàn)了同樣的效果:
RangeValidator1.MaximumValue=“100”;
RangeValidator1.MiniimumValue=“0”;
MaximumValue和MinimumValue屬性都是通過字符串來指定值的范圍的,如果指定的值無法轉(zhuǎn)換成Type屬性指定的數(shù)據(jù)類型,則會(huì)產(chǎn)生一個(gè)跟蹤調(diào)試信息,但是RangeValidator驗(yàn)證控件的IsValid屬性仍將被設(shè)置為True。5.6RegularExpressionValidator控件
RegularExpressionValidator控件可翻譯為正則表達(dá)式驗(yàn)證控件,它將檢驗(yàn)被驗(yàn)證控件的值是否與指定的正則表達(dá)式相匹配。如果匹配,則通過驗(yàn)證;否則,驗(yàn)證不通過。使用這種驗(yàn)證控件可以檢查指定的字符串序列是否與指定的模式相匹配,例如E-mail地址、電話號(hào)碼和郵政編碼的格式是否正確等。例如下面的代碼:
RegularExpressionValidator1.ValidationExpression="^\\d{5}$";
//表示5個(gè)數(shù)字
RegularExpressionValidator1.ControlToValidate="TextBox1";
RegularExpressionValidator1.Display=ValidatorDisplay.Static;正則表達(dá)式驗(yàn)證控件在客戶端和服務(wù)器的處理過程略有不同。在服務(wù)器端,它使用System.Text.RegularExpression.Regex指定的語法;在客戶端,它使用JScript正則表達(dá)式語法(它是System.Text.RegularExpression.Regex指定的正則表達(dá)式語法的一個(gè)子集)。但是,可以在服務(wù)器和客戶端同時(shí)使用JScript正則表達(dá)式語法,這樣就可以采用一致的方式來指定正則表達(dá)式。5.7CustomValidator控件除了以上四種常用的驗(yàn)證控件外,ASP.NET還支持自定義驗(yàn)證控件,自定義驗(yàn)證使用CustomValidator控件實(shí)現(xiàn)。使用這個(gè)控件,用戶可以自定義輸入控件的驗(yàn)證過程。自定義驗(yàn)證控件包含一個(gè)ClientValidationFunction屬性,這個(gè)屬性用來指定自定義驗(yàn)證控件的客戶端驗(yàn)證函數(shù)的名稱??蛻舳蓑?yàn)證函數(shù)必須具有如下形式:
FunctionClientValidationFunctionName(source,value)其中,source表示驗(yàn)證控件;value則包含兩個(gè)字段:Value(被驗(yàn)證控件的值)和IsValid(用來指定驗(yàn)證是否通過)。
創(chuàng)建客戶端的驗(yàn)證函數(shù)后,就可以把它的名稱賦給自定義驗(yàn)證控件的ClientValidationFunction屬性。例如下面的代碼:
CustomValidator1.ClientValidationFunction=“ClientValidation”;
自定義驗(yàn)證控件的服務(wù)器端的驗(yàn)證過程是通過響應(yīng)它的ServerValidate事件來實(shí)現(xiàn)的。該事件參數(shù)包含以下兩個(gè)屬性:
(1)?IsValid屬性:表示驗(yàn)證過程是否通過。如果通過,則在事件處理方法中把這個(gè)屬性設(shè)為True;否則設(shè)為False。5.8ValidationSummary控件
ValidationSummary控件用來總結(jié)頁面中的所有驗(yàn)證錯(cuò)誤,然后直接在頁面中或者通過一個(gè)消息框來集中地顯示這些驗(yàn)證錯(cuò)誤??梢酝ㄟ^ValidationSummary控件的DisplayMode屬性指定錯(cuò)誤信息的顯示方式。顯示方式如表5-3所示,其中,BulletList為默認(rèn)方式。例如下面代碼:
ValidationSummary.DisplayMode=ValidationSummaryDisplayMode.List;
ValidationSummary控件的EnableClientScript屬性用來指定是否生成客戶端的顯示腳本;ForeColor屬性用來指定顯示錯(cuò)誤信息所使用的顏色;HeaderText屬性用來指定標(biāo)題頭;ShowMessageBox和ShowSummary屬性用來指定通過消息框顯示錯(cuò)誤信息還是直接在頁面顯示錯(cuò)誤信息,可以把這兩個(gè)屬性都設(shè)置為True,同時(shí)使用兩種方式顯示錯(cuò)誤信息。例如下面的代碼: ValidationSummary.DisplayMode=ValidationSummaryDisplayMode.BulletList;
ValidationSummary1.ShowMessageBox=True;
ValidationSummary.ShowSummary=False;
ValidationSummary1.ForeColor=system.Drawing.color.Blue;
Validationsummary1.HeaderText=“頁面出現(xiàn)了下列驗(yàn)證錯(cuò)誤”;
通過上面的介紹,我們掌握了ASP.NET中驗(yàn)證控件的使用方法。下面可以按照本章提出的項(xiàng)目任務(wù)要求,為用戶注冊(cè)頁面添加驗(yàn)證。項(xiàng)目任務(wù)5-1使用驗(yàn)證控件為用戶注冊(cè)頁面添加驗(yàn)證
【要求】使用驗(yàn)證控件為用戶注冊(cè)頁面添加驗(yàn)證,該頁面是第4章中項(xiàng)目任務(wù)4-1創(chuàng)建的頁面。在該頁面中,用戶只是了解了常用Web服務(wù)器控件的使用方法,在實(shí)際應(yīng)用中,我們還需要對(duì)輸入的信息做一些控制,比如輸入的用戶名不能為空,輸入的兩次密碼不一致時(shí)應(yīng)該提示,輸入的年齡必須在1~150歲之間等。
【步驟】
(1)打開4-3.aspx,拖放RequiredFieldValidator、RangeVa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)食品及飼料添加劑行業(yè)運(yùn)營(yíng)狀況及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)風(fēng)力發(fā)電機(jī)組葉片裝置市場(chǎng)發(fā)展趨勢(shì)與十三五規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)防火玻璃產(chǎn)業(yè)前景展望及未來投資規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)鑄造粘結(jié)材料行業(yè)競(jìng)爭(zhēng)格局及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)銅加工產(chǎn)業(yè)運(yùn)營(yíng)狀況與發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國(guó)金屬船舶市場(chǎng)前景規(guī)劃及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025-2030年中國(guó)道路護(hù)欄行業(yè)發(fā)展現(xiàn)狀及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)補(bǔ)血保健品市場(chǎng)十三五規(guī)劃與發(fā)展策略分析報(bào)告
- 2025-2030年中國(guó)脫臭餾出物的分離提取產(chǎn)物行業(yè)運(yùn)行現(xiàn)狀及前景規(guī)劃分析報(bào)告
- 2025-2030年中國(guó)納米二氧化鈦市場(chǎng)運(yùn)行狀況及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 產(chǎn)品不良品(PPM)統(tǒng)計(jì)表格模板
- 品管圈PDCA提高手衛(wèi)生依從性-手衛(wèi)生依從性品
- 2023年廣州市青年教師初中數(shù)學(xué)解題比賽決賽試卷
- 對(duì)折剪紙課件
- 公園棧道棧橋施工方案
- 新中國(guó)成立后的中國(guó)國(guó)防
- 熱烈歡迎領(lǐng)導(dǎo)蒞臨指導(dǎo)ppt模板
- 不規(guī)則抗體篩查與鑒定
- 2023-2024人教版小學(xué)2二年級(jí)數(shù)學(xué)下冊(cè)(全冊(cè))教案【新教材】
- 中國(guó)銀行海爾多聯(lián)機(jī)方案書
- 小學(xué)《體育與健康》體育基礎(chǔ)理論知識(shí)
評(píng)論
0/150
提交評(píng)論