ASP.NET驗證控制項祥解(轉)

來源:互聯網
上載者:User
asp.net|控制項 ASP.NET驗證控制項祥解

ASP.NET是微軟推出的下一代WEB開發工具,其強大的功能立即吸引了一大批WEB開發人員投入它的靡下。現在,我們來看看ASP.NET的驗證控制項,感受ASP.NET的強大功能同時方便我們現在的WEB開發。

  WEB開發人員特別是ASP開發人員,一直對資料驗證比較惱火,當你好不容易寫出資料提交程式的主體以後,還不得不花大把時間去驗證使用者的每一個輸入是否合法。如果開發人員熟悉JavaScript或者VBScript,可以用這些指令碼語言輕鬆實現驗證,但是又要考慮使用者瀏覽器是否支援這些指令碼語言;如果對這些不是很熟悉或者想支援所有使用者瀏覽器,就必須在ASP程式裡面驗證,但是這樣驗證就會增加伺服器負擔。現在,有了ASP.NET,你不但可以輕鬆的實現對使用者輸入的驗證,而且,還可以選擇驗證在伺服器端進行還是在用戶端進行,再也不必考慮那麼多了,程式員們可以將重要精力放在主程式的設計上了。

ASP.NET公有六種驗證控制項,分別如下:
 

控制項名 功能描敘
RequiredFieldValidator(必須欄位驗證) 用於檢查是否有輸入值
CompareValidator(比較驗證) 按設定比較兩個輸入
RangeValidator(範圍驗證) 輸入是否在指定範圍
RegularExpressionValidator(Regex驗證) Regex驗證控制項
CustomValidator(自訂驗證) 自訂驗證控制項
ValidationSummary(驗證總結) 總結驗證結果


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

  一:RequiredFieldValidator(必須欄位驗證)的使用

  RequiredFieldValidator控制項使用的標準代碼如下:

<ASP:RequiredFieldValidator id="Validator_Name" Runat="Server"
   ControlToValidate="要檢查的控制項名"
   ErrorMessage="出錯資訊"
   Display="Static|Dymatic|None"
 >
 預留位置
</ASP: RequiredFieldValidator >

 


在以上標準代碼中:

  ControlToValidate:表示要進行檢查控制項ID;

  ErrorMessage:表示當檢查不合法時,出現的錯誤資訊;

  Display:錯誤資訊的顯示方式;Static表示控制項的錯誤資訊在頁面中佔有肯定位置;Dymatic表示控制項錯誤資訊出現時才佔用頁面控制項;None表示錯誤出現時不顯示,但是可以在ValidatorSummary中顯示;

  預留位置:表示Display為Static時,錯誤資訊佔有"預留位置"那麼大的頁面空間;

  現在,讓我們看一個執行個體:
 

<ASP:TextBox id="txtName" RunAt="Server"/>
<ASP:RequiredFieldValidator id="Validator1" Runat="Server"
   ControlToValidate="txtName"
   ErrorMessage="姓名必須輸入"
   Display="Static">
  *姓名必須輸入
</ASP:RequiredFieldValidator>
 

在以上例子中,檢查txtName控制項是否有輸入,如果沒有,顯示錯誤資訊"姓名必須輸入"。是不是很簡單?
注意:以上代碼和下面其他控制項的代碼最好放入Form中,和ASP中不一樣的是,Form最好寫為這樣:

 

<Form RunAt="Server">
其他代碼
</Form>
 


 

這樣,Form在伺服器端執行,提交才會有效;

二:CompareValidator(比較驗證)控制項

  比較控制項比較兩個控制項的輸入是否符合程式設定,大家不要把比較僅僅理解為"相等",儘管相等是用的最多的,其實,這裡的比較包括範圍很廣,大家看標準代碼就會明白。

  比較控制項的標準代碼如下:
 

<ASP:CompareValidator id="Validator_ID" RunAt="Server"
ControlToValidate="要驗證的控制項ID"
errorMessage="錯誤資訊"
ControlToCompare="要比較的控制項ID"
type="String|Integer|Double|DateTime|Currency"
operator="Equal|NotEqual|GreaterThan|GreaterTanEqual|LessThan|LessThanEqual|DataTypeCheck"
Display="Static|Dymatic|None"

預留位置
</ASP:CompareValidator>
 


在以上標準代碼中:

  Type表示要比較的控制項的資料類型;

  Operator表示比較操作(也就是剛才說的為什麼比較不僅僅是"相等"的原因),這裡,比較有7種方式;

  其他屬性和RequiredFieldValidator相同;

  在這裡,要注意ControlToValidate和ControlToCompare的區別,如果operate為GreateThan,那麼,必須ControlToCompare大於ControlToValidate才是合法的,這下,應該明白它們兩者的意義了吧?例子程式請參考RequiredFieldValidator控制項,對照標準代碼自己設計。

  三:RangeValidator(範圍驗證)控制項

  驗證輸入是否在一定範圍,範圍用MaximumValue(最大)和MinimunVlaue來確定,標準代碼如下:

<ASP:RangeValidator id="Vaidator_ID" Runat="Server"
controlToValidate="要驗證的控制項ID"
type="Integer"
MinimumValue="最小值"
MaximumValue="最大值"
errorMessage="錯誤資訊"
Display="Static|Dymatic|None"

預留位置
</ASP:RangeValidator>
 


在以上代碼中:

    用MinimumValue和MaximumValue來界定控制項輸入值得範圍,用type來定義控制項輸入值的類型。

  四:RegularExpresionValidator(Regex)控制項

  Regex驗證控制項的功能非常強大,你可以自己容易構造驗證方式,我們先來看看標準代碼:

<ASP:RegularExpressionValidator id="Validator_ID" RunAt="Server"
ControlToValidate="要驗證控制項名"
ValidationExpression="Regex"
errorMessage="錯誤資訊"
display="Static"

預留位置
</ASP:RegularExpressionValidator>
 


在以上標準代碼中,ValidationExpression是重點,現在來看看它的構造:

  在ValidationExpression中,不同的字元表示不同的含義:

  "."表示任一字元;

  "*"表示和其他運算式一起,表示容易組合;

  "[A-Z]"表示任意大寫字母;

  "\d"表示容易一個數字;

  注意,在以上運算式中,引號不包括在內;

  舉例:

   Regex:".*[A-Z]"表示數字開頭的任一字元組合其後接一個大寫字母。

  五:ValidationSummary(驗證總結)控制項

  該控制項收集本頁的所有驗證錯誤資訊,並可以將它們組織以後再顯示出來。其標準代碼如下:

<ASP:ValidationSummary id="Validator_ID" RunAT="Server"
HeaderText="頭資訊"
ShowSummary="True|False"
DiaplayMode="List|BulletList|SingleParagraph"

</ASP: ValidationSummary >
 

在以上標準代碼中,HeadText相當於表的HeadText,DisplayMode表示錯誤資訊顯示方式:List相當於HTML中的<BR>;BulletList相當於HTML中的<LI>;SingleParegraph表示錯誤資訊之間不作如何分割;

  六:CustomValidator(自訂驗證)控制項

  該控制項用自訂的函數界定驗證方式,其標準代碼如下:
 

<ASP:CustomValidator id="Validator_ID" RunAt="Server"
controlToValidate="要驗證的控制項"
onServerValidateFunction="驗證函式"
errorMessage="錯誤資訊"
Display="Static|Dymatic|None"

預留位置
</ASP: CustomValidator >
 


以上代碼中,使用者必須定義一個函數來驗證輸入。

  七:總結

  ASP.NET驗證控制項已經介紹完了,大家可以發現它們的功能很強大,再也不要為驗證而煩惱了。當然,以上介紹並不是特別詳細,細微的地方,還請大家自己閱讀微軟的SDK。
ASP.NET是微軟推出的下一代WEB開發工具,其強大的功能立即吸引了一大批WEB開發人員投入它的靡下。現在,我們來看看ASP.NET的驗證控制項,感受ASP.NET的強大功能同時方便我們現在的WEB開發。

  WEB開發人員特別是ASP開發人員,一直對資料驗證比較惱火,當你好不容易寫出資料提交程式的主體以後,還不得不花大把時間去驗證使用者的每一個輸入是否合法。如果開發人員熟悉JavaScript或者VBScript,可以用這些指令碼語言輕鬆實現驗證,但是又要考慮使用者瀏覽器是否支援這些指令碼語言;如果對這些不是很熟悉或者想支援所有使用者瀏覽器,就必須在ASP程式裡面驗證,但是這樣驗證就會增加伺服器負擔。現在,有了ASP.NET,你不但可以輕鬆的實現對使用者輸入的驗證,而且,還可以選擇驗證在伺服器端進行還是在用戶端進行,再也不必考慮那麼多了,程式員們可以將重要精力放在主程式的設計上了。

ASP.NET公有六種驗證控制項,分別如下:
 

控制項名 功能描敘
RequiredFieldValidator(必須欄位驗證) 用於檢查是否有輸入值
CompareValidator(比較驗證) 按設定比較兩個輸入
RangeValidator(範圍驗證) 輸入是否在指定範圍
RegularExpressionValidator(Regex驗證) Regex驗證控制項
CustomValidator(自訂驗證) 自訂驗證控制項
ValidationSummary(驗證總結) 總結驗證結果


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

  一:RequiredFieldValidator(必須欄位驗證)的使用

  RequiredFieldValidator控制項使用的標準代碼如下:

<ASP:RequiredFieldValidator id="Validator_Name" Runat="Server"
   ControlToValidate="要檢查的控制項名"
   ErrorMessage="出錯資訊"
   Display="Static|Dymatic|None"
 >
 預留位置
</ASP: RequiredFieldValidator >

 


在以上標準代碼中:

  ControlToValidate:表示要進行檢查控制項ID;

  ErrorMessage:表示當檢查不合法時,出現的錯誤資訊;

  Display:錯誤資訊的顯示方式;Static表示控制項的錯誤資訊在頁面中佔有肯定位置;Dymatic表示控制項錯誤資訊出現時才佔用頁面控制項;None表示錯誤出現時不顯示,但是可以在ValidatorSummary中顯示;

  預留位置:表示Display為Static時,錯誤資訊佔有"預留位置"那麼大的頁面空間;

  現在,讓我們看一個執行個體:
 

<ASP:TextBox id="txtName" RunAt="Server"/>
<ASP:RequiredFieldValidator id="Validator1" Runat="Server"
   ControlToValidate="txtName"
   ErrorMessage="姓名必須輸入"
   Display="Static">
  *姓名必須輸入
</ASP:RequiredFieldValidator>
 

在以上例子中,檢查txtName控制項是否有輸入,如果沒有,顯示錯誤資訊"姓名必須輸入"。是不是很簡單?
注意:以上代碼和下面其他控制項的代碼最好放入Form中,和ASP中不一樣的是,Form最好寫為這樣:

 

<Form RunAt="Server">
其他代碼
</Form>
 


 

這樣,Form在伺服器端執行,提交才會有效;

二:CompareValidator(比較驗證)控制項

  比較控制項比較兩個控制項的輸入是否符合程式設定,大家不要把比較僅僅理解為"相等",儘管相等是用的最多的,其實,這裡的比較包括範圍很廣,大家看標準代碼就會明白。

  比較控制項的標準代碼如下:
 

<ASP:CompareValidator id="Validator_ID" RunAt="Server"
ControlToValidate="要驗證的控制項ID"
errorMessage="錯誤資訊"
ControlToCompare="要比較的控制項ID"
type="String|Integer|Double|DateTime|Currency"
operator="Equal|NotEqual|GreaterThan|GreaterTanEqual|LessThan|LessThanEqual|DataTypeCheck"
Display="Static|Dymatic|None"

預留位置
</ASP:CompareValidator>
 


在以上標準代碼中:

  Type表示要比較的控制項的資料類型;

  Operator表示比較操作(也就是剛才說的為什麼比較不僅僅是"相等"的原因),這裡,比較有7種方式;

  其他屬性和RequiredFieldValidator相同;

  在這裡,要注意ControlToValidate和ControlToCompare的區別,如果operate為GreateThan,那麼,必須ControlToCompare大於ControlToValidate才是合法的,這下,應該明白它們兩者的意義了吧?例子程式請參考RequiredFieldValidator控制項,對照標準代碼自己設計。

  三:RangeValidator(範圍驗證)控制項

  驗證輸入是否在一定範圍,範圍用MaximumValue(最大)和MinimunVlaue來確定,標準代碼如下:

<ASP:RangeValidator id="Vaidator_ID" Runat="Server"
controlToValidate="要驗證的控制項ID"
type="Integer"
MinimumValue="最小值"
MaximumValue="最大值"
errorMessage="錯誤資訊"
Display="Static|Dymatic|None"

預留位置
</ASP:RangeValidator>
 


在以上代碼中:

    用MinimumValue和MaximumValue來界定控制項輸入值得範圍,用type來定義控制項輸入值的類型。

  四:RegularExpresionValidator(Regex)控制項

  Regex驗證控制項的功能非常強大,你可以自己容易構造驗證方式,我們先來看看標準代碼:

<ASP:RegularExpressionValidator id="Validator_ID" RunAt="Server"
ControlToValidate="要驗證控制項名"
ValidationExpression="Regex"
errorMessage="錯誤資訊"
display="Static"

預留位置
</ASP:RegularExpressionValidator>
 


在以上標準代碼中,ValidationExpression是重點,現在來看看它的構造:

  在ValidationExpression中,不同的字元表示不同的含義:

  "."表示任一字元;

  "*"表示和其他運算式一起,表示容易組合;

  "[A-Z]"表示任意大寫字母;

  "\d"表示容易一個數字;

  注意,在以上運算式中,引號不包括在內;

  舉例:

   Regex:".*[A-Z]"表示數字開頭的任一字元組合其後接一個大寫字母。

  五:ValidationSummary(驗證總結)控制項

  該控制項收集本頁的所有驗證錯誤資訊,並可以將它們組織以後再顯示出來。其標準代碼如下:

<ASP:ValidationSummary id="Validator_ID" RunAT="Server"
HeaderText="頭資訊"
ShowSummary="True|False"
DiaplayMode="List|BulletList|SingleParagraph"

</ASP: ValidationSummary >
 

在以上標準代碼中,HeadText相當於表的HeadText,DisplayMode表示錯誤資訊顯示方式:List相當於HTML中的<BR>;BulletList相當於HTML中的<LI>;SingleParegraph表示錯誤資訊之間不作如何分割;

  六:CustomValidator(自訂驗證)控制項

  該控制項用自訂的函數界定驗證方式,其標準代碼如下:
 

<ASP:CustomValidator id="Validator_ID" RunAt="Server"
controlToValidate="要驗證的控制項"
onServerValidateFunction="驗證函式"
errorMessage="錯誤資訊"
Display="Static|Dymatic|None"

預留位置
</ASP: CustomValidator >
 


以上代碼中,使用者必須定義一個函數來驗證輸入。

  七:總結

  ASP.NET驗證控制項已經介紹完了,大家可以發現它們的功能很強大,再也不要為驗證而煩惱了。當然,以上介紹並不是特別詳細,細微的地方,還請大家自己閱讀微軟的SDK。


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。