久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

ASP.NET驗(yàn)證控件[轉(zhuǎn)]

 天道酬勤0117 2012-07-20

ASP.NET驗(yàn)證控件[轉(zhuǎn)]

一、前言
        在Web應(yīng)用程序中,,大都是對(duì)數(shù)據(jù)的提供或收集,,對(duì)于數(shù)據(jù)的有效性驗(yàn)證是非常重要的,驗(yàn)證就是給所收集的數(shù)據(jù)應(yīng)用的一系列規(guī)則。
        為進(jìn)行有效性驗(yàn)證而收集的數(shù)據(jù)來自于在應(yīng)用程序中提供的Web窗體,,Web窗體由不同的類型的HTML元素組成,,可以對(duì)窗體元素應(yīng)用不同的驗(yàn)證規(guī)則,對(duì)元素應(yīng)用的規(guī)則越多,,應(yīng)用到數(shù)據(jù)上的有效性驗(yàn)證就越嚴(yán)格,。
         驗(yàn)證可以有客戶端和服務(wù)器段的驗(yàn)證??蛻舳说尿?yàn)證主要是用JavaScript腳本,,效率高,響應(yīng)時(shí)間短,,但安全性不好,;服務(wù)器段的驗(yàn)證主要是用C#語言在后臺(tái)驗(yàn)證,安全高了,,但每次提交都要把數(shù)據(jù)傳到后臺(tái),,太慢。
        ASP.NET不僅把窗體的驗(yàn)證作為服務(wù)器控件引入,,還使這些控件智能化,。如果瀏覽器支持JavaScript,而ASP.NET可以發(fā)送JavaScript,,驗(yàn)證就在客戶端進(jìn)行,;如果客戶機(jī)不支持用于驗(yàn)證的JavaScript,這些JavaScript就被忽略,,驗(yàn)證就在服務(wù)器上進(jìn)行,。

二、ASP.NET驗(yàn)證控件

在ASP.NET中驗(yàn)證控件如下:

驗(yàn)證類型

使用的控件

說明

必填字段驗(yàn)證

RequiredFieldValidator

確保用戶不會(huì)跳過某一項(xiàng)輸入,。

比較驗(yàn)證

CompareValidator

將用戶輸入與一個(gè)常數(shù)值或者另一個(gè)控件或特定數(shù)據(jù)類型的值進(jìn)行比較(使用小于,、等于或大于等比較運(yùn)算符)。

范圍驗(yàn)證

RangeValidator

檢查用戶的輸入是否在指定的上下限內(nèi),??梢詸z查數(shù)字對(duì)、字母對(duì)和日期對(duì)限定的范圍,。

正則表達(dá)式驗(yàn)證

RegularExpressionValidator

檢查項(xiàng)與正則表達(dá)式定義的模式是否匹配,。此類驗(yàn)證使您能夠檢查可預(yù)知的字符序列,如電子郵件地址,、電話號(hào)碼,、郵政編碼等內(nèi)容中的字符序列。

自定義驗(yàn)證

CustomValidator

使用您自己編寫的驗(yàn)證邏輯檢查用戶輸入,。此類驗(yàn)證使您能夠檢查在運(yùn)行時(shí)派生的值,。

驗(yàn)證總結(jié)

ValidationSummary

以摘要的形式顯示頁上所有驗(yàn)證程序的驗(yàn)證錯(cuò)誤,。

下面,我們來看這些控件的使用

1,、RequiredFieldValidator(必填字段驗(yàn)證)的使用
  RequiredFieldValidator控件使用的標(biāo)準(zhǔn)代碼如下:

1<asp:RequiredFieldValidator ID="Validator_Name" runat="Server" ControlToValidate="要檢查的控件名"
2                ErrorMessage="出錯(cuò)信息" Display="Static|Dymatic|None">
3占位符
4</asp:RequiredFieldValidator>

在以上標(biāo)準(zhǔn)代碼中:
ControlToValidate:表示要進(jìn)行檢查控件ID,;
ErrorMessage:表示當(dāng)檢查不合法時(shí),出現(xiàn)的錯(cuò)誤信息,;
Display:錯(cuò)誤信息的顯示方式,;Static表示控件的錯(cuò)誤信息在頁面中占有肯定位置;Dymatic表示控件錯(cuò)誤信息出現(xiàn)時(shí)才占用頁面控件,;None表示錯(cuò)誤出現(xiàn)時(shí)不顯示,,但是可以在ValidatorSummary中顯示;
占位符:表示Display為Static時(shí),,錯(cuò)誤信息占有"占位符"那么大的頁面空間,; 

現(xiàn)在,讓我們看一個(gè)實(shí)例:

1<asp:TextBox ID="txtName" runat="Server" />
2 <asp:RequiredFieldValidator ID="Validator1" runat="Server" ControlToValidate="txtName"
3                ErrorMessage="姓名必須輸入" Display="Static">
4*姓名必須輸入
5 </asp:RequiredFieldValidator>

在以上例子中,,檢查txtName控件是否有輸入,,如果沒有,顯示錯(cuò)誤信息"姓名必須輸入",。

注意:以上代碼和下面其他控件的代碼最好放入Form中,,和ASP中不一樣的是,F(xiàn)orm最好寫為這樣:
<Form RunAt="Server">其他代碼</Form> 
這樣,,F(xiàn)orm在服務(wù)器端執(zhí)行,,提交才會(huì)有效;

2,、CompareValidator(比較驗(yàn)證)控件
比較控件比較兩個(gè)控件的輸入是否符合程序設(shè)定,,大家不要把比較僅僅理解為"相等",盡管相等是用的最多的,,其實(shí),,這里的比較包括范圍很廣,大家看標(biāo)準(zhǔn)代碼就會(huì)明白,。

CompareValidator控件的標(biāo)準(zhǔn)代碼如下:

1<asp:CompareValidator ID="Validator_ID" runat="Server" ControlToValidate="要驗(yàn)證的控件ID"
2                ControlToCompare="要比較的控件ID" ErrorMessage="錯(cuò)誤信息" Type="String|Integer|Double|DateTime|Currency"   Operator="Equal|NotEqual|GreaterThan|GreaterTanEqual|LessThan|LessThanEqual|DataTypeCheck"
3              Display="Static|Dymatic|None">
4占位符
5</asp:CompareValidator>

在以上標(biāo)準(zhǔn)代碼中:
Type:表示要比較的控件的數(shù)據(jù)類型,;
Operator:表示比較操作,這里,,比較有7種方式;
其他屬性和RequiredFieldValidator相同,;

  在這里,,要注意ControlToValidate和ControlToCompare的區(qū)別,如果operate為GreateThan,,那么,,必須ControlToCompare大于ControlToValidate才是合法的,,這下,應(yīng)該明白它們兩者的意義了吧,?例子程序請(qǐng)參考RequiredFieldValidator控件,,對(duì)照標(biāo)準(zhǔn)代碼自己設(shè)計(jì)。

3,、RangeValidator(范圍驗(yàn)證)控件
驗(yàn)證輸入是否在一定范圍,,范圍用MaximumValue和MinimunVlaue來確定。

RangeValidator控件標(biāo)準(zhǔn)代碼如下:

1<asp:RangeValidator ID="Vaidator_ID" runat="Server" ControlToValidate="要驗(yàn)證的控件ID"
2                Type="String|Integer|Double|DateTime|Currency" MinimumValue="最小值" MaximumValue="最大值"
3                ErrorMessage="錯(cuò)誤信息" Display="Static|Dymatic|None">
4占位符
5 </asp:RangeValidator>

在以上代碼中:
   用MinimumValue和MaximumValue來界定控件輸入值得范圍,,用type來定義控件輸入值的類型,。


4、RegularExpresionValidator(正則表達(dá)式)控件
  正則表達(dá)式驗(yàn)證控件的功能非常強(qiáng)大,,你可以自己容易構(gòu)造驗(yàn)證方式,,我們先來看看標(biāo)準(zhǔn)代碼:

1 <asp:RegularExpressionValidator ID="Validator_ID" runat="Server" ControlToValidate="要驗(yàn)證控件名"
2                ValidationExpression="正則表達(dá)式" ErrorMessage="錯(cuò)誤信息" Display="Static|Dymatic|None">
3占位符
4</asp:RegularExpressionValidator>

在以上標(biāo)準(zhǔn)代碼中,ValidationExpression是重點(diǎn),,現(xiàn)在來看看它的構(gòu)造:
在ValidationExpression中,,不同的字符表示不同的含義:
星號(hào)"*":表示和其他表達(dá)式一起,表示容易組合,;
方括號(hào)“[ ]”:用與定義可接受的字符,。[abc123] 表示控件只能接受 a,b,,c,,1,2,,3 這6個(gè)字符,;[A-Z]表示任意大寫字母;
反集合符號(hào)“ ^ ”:用于定義不可以接受的字符,。[^a-h] 表示控件除了 a 到 h 8個(gè)字符外,,都可以接受;
花括號(hào)“{ }”:定義必須輸入的字符個(gè)數(shù),。{6}表示只能輸入6個(gè)字符 ,; {6,}表示必須輸入6個(gè)以上,,無上限 ,; {2,6} 表示必須輸入2至6個(gè)字符,;但是花括號(hào)必須放在方括號(hào)后面,,例如 [a-z]{4} 表示必須輸入 4位a和z之間的任意字符。
小圓點(diǎn)“ . ”:用于代表任意字符,。 例如 .{3,,6}表示接受3到6個(gè)任意字符,。
豎線“ | ” :用于表示 “或”的邏輯符號(hào)。例如 [1-9]{3,,6}|[A-Za-z]{3} 表示可以接受 3到6個(gè)數(shù)字或者 3個(gè)字母,。 (大小寫都可以區(qū)別的哦)
小括號(hào)“()” :用于分塊,與數(shù)字運(yùn)算中的小括號(hào)作用類似,。
斜線“ \ ” :若希望可以接受的字符包含上述特殊字符,。例如 \([0-9]{3}\),表示輸入格式為“(xxx)”的電話區(qū)號(hào)。

注意,,在以上表達(dá)式中,,引號(hào)不包括在內(nèi);
舉例:正則表達(dá)式:".*[A-Z]"表示數(shù)字開頭的任意字符組合其后接一個(gè)大寫字母,。


5,、CustomValidator(自定義驗(yàn)證)控件
該控件用自定義的函數(shù)界定驗(yàn)證方式,其標(biāo)準(zhǔn)代碼如下:

1<asp:CustomValidator ID="Validator_ID" runat="Server" ControlToValidate="要驗(yàn)證的控件"
2 OnServerValidate="服務(wù)器段驗(yàn)證函數(shù)" ClientValitationFunction="客戶段驗(yàn)證函數(shù)" ErrorMessage="錯(cuò)誤信息"       Display="Static|Dymatic|None"></asp:CustomValidator>
3占位符 
4</asp:CustomValidator>

以上代碼中,,用戶必須定義一個(gè)函數(shù)來驗(yàn)證輸入,。

6、ValidationSummary(驗(yàn)證總結(jié))控件
  該控件不對(duì)Web窗體中輸入的數(shù)據(jù)進(jìn)行驗(yàn)證,,而是收集本頁的所有驗(yàn)證錯(cuò)誤信息,,并可以將它們組織以后再顯示出來。其標(biāo)準(zhǔn)代碼如下:

1<asp:ValidationSummary ID="Validator_ID" runat="Server" HeaderText="頭信息" ShowSummary="True|False"
2                DiaplayMode="List|BulletList|SingleParagraph" />

  在以上標(biāo)準(zhǔn)代碼中,,HeadText相當(dāng)于表的HeadText,,DisplayMode表示錯(cuò)誤信息顯示方式:List相當(dāng)于HTML中的<BR>;BulletList相當(dāng)于HTML中的<LI>,;SingleParegraph表示錯(cuò)誤信息之間不作如何分割,。
如下代碼,將錯(cuò)誤信息顯示在一個(gè)對(duì)話框中,。

1<asp:ValidationSummary ID="Validator_ID" runat="Server" HeaderText="ValidationSummaryName"
2            ShowSummary="False" ShowMessageBox="True" />

對(duì)以上6個(gè)驗(yàn)證控件需要補(bǔ)充說明的如下:

      可以通過Page的屬性ClientTarget可以設(shè)置所有的驗(yàn)證控件是否會(huì)在客戶端驗(yàn)證,。只要將這個(gè)屬性設(shè)置為UpLevel就可以了,DownLevel下,,所有的驗(yàn)證都只會(huì)在服務(wù)器上執(zhí)行了,。默認(rèn)情況下,大多數(shù)瀏覽器都是會(huì)在客戶端驗(yàn)證的,,所以我并不知道它的這個(gè)屬性是不是默認(rèn)UpLevel了,。當(dāng)然,如果要為單獨(dú)的一個(gè)或幾個(gè)驗(yàn)證控件設(shè)置的話,,那么還是使用原先的EnableClientScript,。

     另外還增加了一個(gè)SetFoucsOnError屬性。就是當(dāng)出錯(cuò)的時(shí)候?qū)⒔裹c(diǎn)移到控件上,。這樣就不會(huì)使用戶在點(diǎn)擊了按鈕之后因?yàn)闆]看到錯(cuò)誤提示而在那發(fā)愣了,。另外一個(gè)就是CustomValidator增加了ValidateEmptyText屬性來讓用戶自定義驗(yàn)證控件在值為空時(shí)也驗(yàn)證。

      下一個(gè)有用的特性是ValidationGroup屬性,,將你在一個(gè)按鈕點(diǎn)擊時(shí)要驗(yàn)證的控件設(shè)置為同一個(gè)組名吧,,而另一個(gè)按鈕要驗(yàn)證的設(shè)置為另一個(gè)名,這樣就可以使點(diǎn)擊一個(gè)按鍵時(shí)只發(fā)生期望的驗(yàn)證,,而不是所有的驗(yàn)證,,而不必在服務(wù)器端顯示來控件。注意,,按鈕也應(yīng)該設(shè)計(jì)ValidationGroup屬性,。

      有些情況下客戶不想顯示文字而是圖片或聲音時(shí),驗(yàn)證控件的ErrorMessage屬性的值可以是一個(gè)HTML字符串,,例如errorMessage=’<img src=”picture.gif”>’,,這樣可使頁面生動(dòng)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多