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)證控件如下:
下面,我們來看這些控件的使用 1,、RequiredFieldValidator(必填字段驗(yà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)代碼中: 現(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最好寫為這樣: 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)代碼中: 在這里,,要注意ControlToValidate和ControlToCompare的區(qū)別,如果operate為GreateThan,,那么,,必須ControlToCompare大于ControlToValidate才是合法的,,這下,應(yīng)該明白它們兩者的意義了吧,?例子程序請(qǐng)參考RequiredFieldValidator控件,,對(duì)照標(biāo)準(zhǔn)代碼自己設(shè)計(jì)。 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> 在以上代碼中:
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)造: 注意,,在以上表達(dá)式中,,引號(hào)不包括在內(nèi);
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é))控件 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ò)誤信息之間不作如何分割,。 1<asp:ValidationSummary ID="Validator_ID" runat="Server" HeaderText="ValidationSummaryName"
2 ShowSummary="False" ShowMessageBox="True" /> 對(duì)以上6個(gè)驗(yàn)證控件需要補(bǔ)充說明的如下: |
|