轉:ASP.NET驗證控件詳解
2024-07-10 12:58:25
供稿:網友
 
asp.net驗證控件詳解
 
asp.net是微軟推出的下一代工具,其強大的功能立即吸引了一大批者投入它的靡下。現在,我們來看看asp.net的驗證控件,感受asp.net的強大功能同時方便我們現在的。 
者特別是asp開發者,一直對數據驗證比較惱火,當你好不容易寫出數據提交程序的主體以后,還不得不花大把時間去驗證用戶的每一個輸入是否合法。如果開發者熟悉javascript或者vbscript,可以用這些腳本語言輕松實現驗證,但是又要考慮用戶瀏覽器是否支持這些腳本語言;如果對這些不是很熟悉或者想支持所有用戶瀏覽器,就必須在asp程序里面驗證,但是這樣驗證就會增加服務器負擔。現在,有了asp.net,你不但可以輕松的實現對用戶輸入的驗證,而且,還可以選擇驗證在服務器端進行還是在客戶端進行,再也不必考慮那么多了,程序員們可以將重要精力放在主程序的設計上了。 
asp.net共有六種驗證控件,分別如下: 
 
下面,我們來看這些控件的使用 
一: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(正則表達式)控件 
正則表達式驗證控件的功能非常強大,你可以自己容易構造驗證方式,我們先來看看標準代碼: 
<asp:regularexpressionvalidator id="validator_id" runat="server" 
controltovalidate="要驗證控件名" 
validationexpression="正則表達式" 
errormessage="錯誤信息" 
display="static" 
> 
占位符 
</asp:regularexpressionvalidator> 
在以上標準代碼中,validationexpression是重點,現在來看看它的構造: 
在validationexpression中,不同的字符表示不同的含義: 
“.”表示任意字符; 
“*”表示和其他表達式一起,表示容易組合; 
“[a-z]”表示任意大寫字母; 
“/d”表示容易一個數字; 
注意,在以上表達式中,引號不包括在內; 
舉例: 
正則表達式:“.*[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。 
菜鳥學堂: