ASP.NET中验证控件的使用
前言:
? ? 前幾日,無(wú)奈用JS判斷控件的有效性,發(fā)現(xiàn)的確是一件費(fèi)力、費(fèi)神的事情!特別是針對(duì)郵件格式、郵政編碼等的關(guān)于正則表達(dá)式的JS驗(yàn)證(其中涉及正則表達(dá)式的比較等,較煩~)。其實(shí)對(duì)于這些常用的控件有效性驗(yàn)證,在Asp.Net中有單獨(dú)的驗(yàn)證控件可供使用。他們可以滿(mǎn)足一般的,諸如非空,范圍、比較等的驗(yàn)證。
?
驗(yàn)證控件:
?? Asp.Net中內(nèi)置的驗(yàn)證控件有:RequiredFieldValidation、RangeValidation、RegularExpressValidation、CompareValidation、CustomValidation和ValidationSummary等六種。其中用戶(hù)自定義驗(yàn)證控件,由于并不非常常用(要自定義很多成分,包括函數(shù)等),在此文不予論述。
?? 簡(jiǎn)單的驗(yàn)證界面如下(Design視圖):
?
?
?
?如圖展示了選取環(huán)境,右邊紅色字體為驗(yàn)證控件的ErrorMessage信息。設(shè)計(jì)的環(huán)境布置如下:
1) RequiredFieldValidation控件,其ControlToValidate屬性為姓名對(duì)應(yīng)文本框。對(duì)于ControlToValidate屬性,每一個(gè)驗(yàn)證控件均對(duì)應(yīng)一個(gè),作為驗(yàn)證的主體;
2)RangeValidation控件, 其ControlToValidate屬性為年齡對(duì)應(yīng)文本框;
3) CompareValidation控件, 其ControlToValidate屬性為密碼確認(rèn)對(duì)應(yīng)文本框。同時(shí)還有一個(gè)容易和ControlToValidate屬性相混淆的屬性:ControlToCompare屬性,其對(duì)應(yīng)密碼對(duì)應(yīng)文本框。區(qū)分:的要點(diǎn)即是分清主體,此時(shí)驗(yàn)證的主體是密碼確認(rèn)對(duì)應(yīng)框,在用operator時(shí)(等于、大于、小于),是比較的主體,和被比較的文本框相比較,這里即是密碼對(duì)應(yīng)文本框。
4)RegularExpressValidation控件, 其ControlToValidate屬性為郵箱對(duì)應(yīng)文本框;
5) ValidationSummary控件,它不具備ControlToValidate屬性;
?
其對(duì)應(yīng)的前臺(tái)代碼為:
<head?runat="server">????<title>驗(yàn)證控件的演示頁(yè)面</title>
????<script?type?="text/javascript"?>
????//?Description:?通過(guò)逐個(gè)演示驗(yàn)證控件的使用,作為復(fù)習(xí)
???//?CopyRight:?http://www.cnblogs.com/yangmingming
???//?Notes:?采用一張模擬用戶(hù)表的例子驗(yàn)證
???</script>
</head>
<body>
????<form?id="form1"?runat="server">
????<div>
???????姓名:?<asp:TextBox?ID="txtRequiredField"?runat="server"></asp:TextBox>
????????<asp:RequiredFieldValidator?ID="RequiredFieldValidator1"?runat="server"?
????????????ErrorMessage="姓名不能為空!"?ControlToValidate="txtRequiredField"></asp:RequiredFieldValidator>
????????????<br/>
????????????年齡:<asp:TextBox?ID="txtRange"?runat="server"></asp:TextBox>
????????<asp:RangeValidator?ID="RangeValidator1"?runat="server"?
????????????ErrorMessage="年齡不在規(guī)定范圍內(nèi)!"?ControlToValidate="txtRange"?MaximumValue="100"?
????????????MinimumValue="0"?Type="Integer"></asp:RangeValidator>
????????<br?/>
????????密碼:<asp:TextBox?ID="txtPassword"?runat="server"></asp:TextBox>
????????<br?/>
????????密碼確認(rèn):<asp:TextBox?ID="txtPasswordConfirm"?runat="server"></asp:TextBox>
????????<asp:CompareValidator?ID="CompareValidator1"?runat="server"?
????????????ErrorMessage="密碼前后輸入,不一致!"?ControlToCompare="txtPassword"?
????????????ControlToValidate="txtPasswordConfirm"></asp:CompareValidator>
????????????<br?/>
????????????郵箱:<asp:TextBox?ID="txtMail"?runat="server"></asp:TextBox>
????????<asp:RegularExpressionValidator?ID="RegularExpressionValidator1"?runat="server"?
????????????ErrorMessage="郵箱格式不符!"?ControlToValidate="txtMail"?
????????????ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
????????<br?/>
????????<asp:ValidationSummary?ID="ValidationSummary1"?runat="server"?
????????????HeaderText="驗(yàn)證信息匯總"?/>
?????????<br?/>???
????????<asp:Button?ID="btnSubmit"?runat="server"?Text="提交"?onclick="btnSubmit_Click"?/>?
????</div>
????</form>
</body>
</html>
當(dāng)文本框的輸入不符時(shí),出現(xiàn)界面為:
?
?附:
????? 對(duì)于所有RequiredFieldValidation控件,當(dāng)其只針對(duì)姓名框時(shí),當(dāng)其余框?yàn)榭諘r(shí),它們對(duì)應(yīng)的驗(yàn)證控件均失效。?可以認(rèn)為除RequiredFieldValidation控件,其余控件都要在此控件基礎(chǔ)上才能起作用。
?
?
?? 綜述之,把驗(yàn)證控件的使用綜合起來(lái),演示各個(gè)驗(yàn)證控件的使用方法,為以后的驗(yàn)證控件使用做一復(fù)習(xí),呵呵~
總結(jié)
以上是生活随笔為你收集整理的ASP.NET中验证控件的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: jsp中类似gridview的功能
- 下一篇: Windows8 Metro开发 (03