asp net教程詳解(5).pptx_第1頁(yè)
asp net教程詳解(5).pptx_第2頁(yè)
asp net教程詳解(5).pptx_第3頁(yè)
asp net教程詳解(5).pptx_第4頁(yè)
asp net教程詳解(5).pptx_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、三種控件,HTML控件,ASP.Net把HTML控件當(dāng)成普通字符串渲染到瀏覽器端,不去檢查正確性、無(wú)法在服務(wù)器端進(jìn)行處理。 ASP.Net服務(wù)端控件,經(jīng)過(guò)ASP.Net高度封裝的控件,使用簡(jiǎn)單,運(yùn)行在服務(wù)器端,可以在服務(wù)端使用C#代碼進(jìn)行操作,會(huì)渲染到客戶端為HTML控件。 runat=server的HTML控件。在HTML控件的基礎(chǔ)上添加runat=server,也是運(yùn)行在服務(wù)器端的,也可以服務(wù)端使用C#代碼進(jìn)行操作,也會(huì)渲染到客戶端,不像ASP.Net服務(wù)端控件那樣高度封裝,暴露的屬性大部分是普通HTML屬性。和ASP.Net服務(wù)端控件相比的好處是:當(dāng)需要在服務(wù)器端要對(duì)控件進(jìn)行操作的時(shí)候,

2、如果控件沒(méi)有被ASP.Net服務(wù)端控件封裝的時(shí)候,用runat=server的HTML控件很方便,runat=server的HTML控件也會(huì)對(duì)虛擬路徑、idClientID進(jìn)行處理,所以在使用虛擬路徑、UserControl中也可能會(huì)用到,試驗(yàn)在WebUserControl中使用id onmouseover=document.getElementById().value=哈哈; 直接在屬性中有問(wèn)題,會(huì)把。,服務(wù)端HTML控件的類型,aHtmlAnchor;formHtmlForm;headHtmlHead;inputHtmlInputButton、HtmlInputCheckBox 、Html

3、InputText 等;metaHtmlMeta;tableHtmlTable;trHtmlTableRow;tdHtmlTableCell;titleHtmlTitle。未單獨(dú)封裝的標(biāo)簽(比如div)或者自定義的標(biāo)簽(比如mmm)對(duì)應(yīng)類型為HtmlGenericControl。使用Attributes屬性操作未封裝的屬性。 不用單獨(dú)記憶,忘了的話,在aspx中弄一個(gè)標(biāo)簽試驗(yàn)一下就行。 服務(wù)端HTML控件不像ASP.Net控件那樣封裝的高級(jí),比如ASP.Net控件的BgColor屬性為Color類型,而HTML控件的BgColor屬性則為字符串類型,需要開(kāi)發(fā)人員設(shè)置合法的值。,驗(yàn)證控件,必須要

4、對(duì)用戶輸入的數(shù)據(jù)進(jìn)行合法性校驗(yàn),這些校驗(yàn)邏輯很多是重復(fù)的,比如字段不能為空、必須為日期格式、數(shù)字不能大于100等,而且要同時(shí)在客戶端和服務(wù)器端校驗(yàn),客戶端校驗(yàn)提高可用性,服務(wù)端校驗(yàn)防止惡意攻擊。ASP.Net驗(yàn)證控件就是為了簡(jiǎn)化這些問(wèn)題而提供的。 ASP.Net提供了如下的控件: RequiredFieldValidator:字段必填; RangeValidator:值在給定的最大值、最小值之間; CompareValidator:用于比較兩個(gè)值的關(guān)系是否滿足要求或者是否是指定類型的數(shù)據(jù); RegularExpressionValidator:校驗(yàn)數(shù)據(jù)滿足正則表達(dá)式; CustomValida

5、tor:自定義驗(yàn)證。,RequiredFieldValidator,ControlToValidate設(shè)定要驗(yàn)證的控件,Text屬性為當(dāng)被驗(yàn)證的控件屬性為空的時(shí)候顯示的錯(cuò)誤信息,Text不僅可以寫普通文本,可以寫任何HTML內(nèi)容。 有時(shí)候控件如果是默認(rèn)值也認(rèn)為是空值,比如下拉列表的選中值為“-選擇性別-”、文本框的值為“填入搜索關(guān)鍵詞”,只要將RequiredFieldValidator的InitialValue屬性設(shè)定為“-選擇性別-”、“填入搜索關(guān)鍵詞”就可以。,Validator共性,頁(yè)面中的IsValid屬性用來(lái)判斷頁(yè)面中的所有Validator是否都校驗(yàn)通過(guò),只有都校驗(yàn)通過(guò)才為Tru

6、e,即使頁(yè)面中的Validator服務(wù)端校驗(yàn)報(bào)錯(cuò)(禁用JavaScript跳過(guò)客戶端校驗(yàn)),在服務(wù)端方法中的業(yè)務(wù)代碼(比如btn1_Click)也會(huì)被執(zhí)行,因此如果代碼在數(shù)據(jù)校驗(yàn)不通過(guò)的不能執(zhí)行則需要判斷IsValid的值。 所有驗(yàn)證控件都有Display屬性,用來(lái)決定如何顯示錯(cuò)誤信息。三個(gè)值:Static:沒(méi)有錯(cuò)誤信息的時(shí)候控件的visiblity樣式為hidden來(lái)實(shí)現(xiàn)隱藏;Dynamic:沒(méi)有錯(cuò)誤信息的時(shí)候控件的display樣式為none來(lái)實(shí)現(xiàn)隱藏。這兩者的區(qū)別是display:none和visiblity:hidden隱藏的區(qū)別是visiblity:hidden隱藏控件仍然會(huì)占據(jù)空間

7、,而display:none隱藏則不會(huì)占空間。Display屬性還可以設(shè)置為None(用來(lái)配合后面講的ValidationSummary) 幾乎所有控件都有ControlToValidate、Text屬性,不再額外說(shuō)。所有控件都幾乎在客戶端和服務(wù)器端都要進(jìn)行校驗(yàn)。,Validator共性,如果在一個(gè)頁(yè)面中同時(shí)放置注冊(cè)和登錄表單,那么他們的驗(yàn)證就會(huì)同時(shí)進(jìn)行,這樣雖然只是登錄,但是注冊(cè)的驗(yàn)證也會(huì)觸發(fā),可以使用驗(yàn)證組來(lái)解決這個(gè)問(wèn)題,將同一組的控件(表單、提交按鈕、Validator等)的ValidationGroup設(shè)為相同的值就可以,這樣的話和Button等觸發(fā)事件的控件的ValidationGr

8、oup 相同的控件才會(huì)校驗(yàn)。 如果將按鈕控件(Button、ImageButton、LinkButton)的CausesValidation屬性設(shè)置為false,則這個(gè)按鈕的點(diǎn)擊不觸發(fā)校驗(yàn)。,RangeValidator,RangeValidator:MinimumValue、MaximumValue為最大、最小值,Type屬性為數(shù)據(jù)類型(String、Integer、Double、Date、Currency等)。例子:年齡、畢業(yè)日期在合理范圍內(nèi)。 RangeValidator、CompareValidator、RegularExpressionValidator等都不會(huì)對(duì)非空值進(jìn)行校驗(yàn),所以

9、如果字段不允許為空則需要再使用RequiredFieldValidator控件。 MinimumValue、MaximumValue等當(dāng)然也可以在運(yùn)行時(shí)動(dòng)態(tài)設(shè)置,比如設(shè)置最大日期為當(dāng)前日期,DateTime.Now.ToShortDateString()。,CompareValidator,CompareValidator:Type屬性同RangeValidator。Operator屬性,比較操作符,可選值DataTypeCheck、Equal、GreaterThan、GreaterThanEqul、LessThan、LessThanEqual、NotEqual。ValueToCompare,

10、所比較的運(yùn)算符右邊的值。ControlToCompare,設(shè)定與另外一個(gè)控件進(jìn)行比較。 例子,校驗(yàn)工資必須為整數(shù),轉(zhuǎn)正日期必須不能早于于入職日期 校驗(yàn)數(shù)據(jù)類型,不進(jìn)行范圍的比較:ControlToValidate設(shè)定要校驗(yàn)的控件,Type設(shè)置要檢驗(yàn)的數(shù)據(jù)類型,Operator設(shè)定為DataTypeCheck。 要進(jìn)行范圍的比較:ControlToValidate設(shè)定要校驗(yàn)的控件,Type設(shè)置要檢驗(yàn)的數(shù)據(jù)類型,Operator設(shè)定為GreaterThan,ValueToCompare為要比較的值。也可以編程的時(shí)候動(dòng)態(tài)設(shè)置。 與另外一個(gè)控件的值進(jìn)行比較,ControlToValidate設(shè)定要校驗(yàn)

11、的控件,Type設(shè)置要檢驗(yàn)的數(shù)據(jù)類型,Operator設(shè)定為GreaterThan,ControlToCompare設(shè)置為要比較的控件(運(yùn)算符右邊的控件)。 注意驗(yàn)證控件描述的是“正確條件”,不是“錯(cuò)誤條件”??丶d一定要明顯,高級(jí)Validator,RegularExpressionValidator:ValidationExpression屬性為正則表達(dá)式,VS的可視化編輯提供了幾個(gè)內(nèi)置的正則表達(dá)式,也可以自己寫。案例,校驗(yàn)Email地址、身份證號(hào)碼、QQ號(hào)碼(5位至10位的數(shù)字“d5,10”)、個(gè)人說(shuō)明必須在10到50字之間 CustomValidator,自定義驗(yàn)證控件。當(dāng)ASP.N

12、et內(nèi)置的驗(yàn)證控件無(wú)法滿足要求的時(shí)候可以使用CustomValidator。 ServerValidate事件為服務(wù)端的校驗(yàn)代碼,在事件處理函數(shù)中讀取args.Value來(lái)獲得待校驗(yàn)的值,如果值合法則將args.IsValid設(shè)置為true,否則設(shè)置為false。如果為ClientValidationFunction設(shè)定一個(gè)函數(shù)名,那么會(huì)首先在客戶端調(diào)用指定的JavaScript函數(shù)進(jìn)行客戶端校驗(yàn),否則將只做服務(wù)端校驗(yàn)??蛻舳诵r?yàn)函數(shù)的簽名為“函數(shù)名(src,args)”,args的屬性以及意義和服務(wù)端的一樣。 練習(xí):實(shí)現(xiàn)注冊(cè)頁(yè)面(寫校驗(yàn)邏輯就行):用戶名(不能為空,長(zhǎng)度必須在310之間),密

13、碼(不能為空,長(zhǎng)度在39之間),再次輸入密碼(必須和密碼一樣),郵箱(選填,必須符合郵箱格式),出生日期,畢業(yè)日期(畢業(yè)日期要大于出生日期,小于當(dāng)前日期),性別(“請(qǐng)選擇性別”、男、女、保密,必填),月份、日(校驗(yàn)日期中日的數(shù)值在合法范圍內(nèi),1,3,5,7,8,10,12是31天,4,6,9,11是30天,2月假設(shè)最大固定是29天不考慮閏年平年。,CustomValidator)。,匯總錯(cuò)誤消息,使用Validator錯(cuò)誤消息會(huì)顯示在放置的位置,這樣有兩個(gè)可能的問(wèn)題:如果表單非常大,用戶看不到全部的錯(cuò)誤消息,希望把錯(cuò)誤消息集中顯示在提交按鈕旁邊;如果錯(cuò)誤信息非常多錯(cuò)誤信息會(huì)散落各地,希望能集中顯示。 ValidationSummary控件用來(lái)集中顯示錯(cuò)誤消息。每個(gè)驗(yàn)證控件都有ErrorMessage、Text兩個(gè)屬性,ErrorMessage是用來(lái)顯示到ValidationSummary中的值,Text是用來(lái)顯示到Validator位置的值,如果Text為空,則ErrorMessage會(huì)同時(shí)顯示到Val

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論