?

ASP.NET服務器端驗證控件的使用

2014-10-21 11:09陳少燕
電子世界 2014年12期
關鍵詞:控件頁面客戶端

陳少燕

服務器控件的使用:當向Web頁面中增加一個有效性驗證控件時,控件就會呈現在客戶端驗證相關控件有效性的Javascript。

ASP.NET提供了6個有效性驗證控件,其中5個是有效性控件,Cust-omvalidator控件是自定義控件。

下面介紹六個有效性驗證控件的使用:

1.RequestFieldValidator控件:非空驗證控件

(1)設計頁面

設置屬性:ControlToValidate和ErrorMessage。其中ControlTo-Validate是需要驗證有效性的控件ID,ErrorMessage是當驗證出現錯誤的時候,出現在頁面上的文本信息。

(2)拓展:dropdown的非空驗證

dropdown默認的話是“請選擇”的選項被選中,selected=true,其他都是false。要使用非空驗證必須設置InitialValue=”請選擇”。

2.comparevalidator控件:比較控件

(1)設計頁面

(2)設置屬性:ControlToCompare和Cont-rolToValidate,分別填入需要驗證的控件ID

默認屬性Operator是equal。用來比較兩個文本框的內容。

但是也可以對數據類型進行檢查。如設置operator=DataType Check。然后設置類型type=date輸入錯誤的日期格式就會出錯誤。

3.RangeValidator控件:范圍驗證控件

設置屬性:MaximumValue和Minimum-Value,分別是控件可接受的最大值和最小值。在本題中,用戶名的最大值是z,年齡的最大值是150。用戶名的最小值是a,年齡的最小值是0。

注意type的類型,默認是string ,當對數字進行范圍驗證,需要設置type=int。

4.RegurExpressValidator控件

正則表達式驗證控件,該控件功能非常強大,控件允許檢查可預知的字符列表,如身份證號,電子郵件地址,電話號碼或郵政編碼等。

設置屬性:

5.ValidatorSummary控件:錯誤總結控件

在ASP.net程序中,如果頁面比較龐大而且需要驗證的控件比較多,用戶在觀察錯誤信息時可能會出現混亂。ValidatorSummay解決了這一個難題。

如果不輸入任何內容就提交,那么Error-Message的錯誤信息顯示在ValidationSummary控件中,而頁面主體顯示Text的信息。如下:

(1)表中屬性showmessagebox的值為Boolean型,如果設置true,頁面上的錯誤信息不在頁面中顯示,而是以彈出對話框的形式來顯示錯誤信息。Showsummary屬性值同樣為boolean型,如果設置其值為false,則錯誤匯總控件不顯示匯總錯誤信息,反之在頁面中顯示錯誤信息。另外一個:驗證匯總中可以設置headertext,表示驗證摘要上方顯示標題文本。

(2)ErrorMessage和Text屬性通常需要搭配使用。所不同的是Text屬性的錯誤信息一般是簡短(如“必填”),ErrorMessage屬性的信息應該識別有錯誤的表單字段(如“用戶名必須填!”)

6.Customvalidator控件:自定義驗證控件

(1)該控件允許用戶根據程序設計需要自定義控件的驗證方法。

(2)用戶自定義驗證控件里面最重要的是args.Value和args.IsValid,args是函數的參數。Value和IsValid都是args的屬性,一定要注意區別大小寫。

args.Value:獲取要驗證的用戶輸入內容,比如文本框的內容args.IsValid:關聯的控件是否通過驗證,通過驗證通過,就不會出現ErrorMessage的內容。

(3)用戶輸入是否能被3整除

拓展1:要求長度大于等于3位和輸入內容必須能被3整除

長度必須大于等于3的代碼如下:

protected void CustomValidator2_ServerValidate(object source, ServerValidateEventArgs args)

{

if(args.Value.Length>=3)

args.IsValid=true;

else

args.IsValid=false;

}

拓展2:CustomValidator是用戶自定義的驗證控件,用來響應用戶自定義的驗證??梢允荍S的客戶端函數,也可以是寫在后臺代碼中的服務端驗證函數重點內容(兩個屬性):

OnServerValidate:規定被執行的服務器端驗證腳本函數的名稱ClientValidationFunction:規定用于驗證的自定義客戶端腳本函數的名稱最終效果如下:

代碼頁面:

客戶端驗證:

如果將args.Value替換為TextBox1.Text會出現TextBox1未定義。

所有必須用:

Var text=document.getElementByld(‘<%=textbox1.ClientID%>)將args.Value替換為text.value。

服務器驗證:

protectedvoidCustomValidator2_ServerValidate(objectsource,ServerValidateEventArgs args)

{

args.IsValid = (args.Value == “服務端”)。

}

猜你喜歡
控件頁面客戶端
刷新生活的頁面
基于.net的用戶定義驗證控件的應用分析
如何看待傳統媒體新聞客戶端的“斷舍離”?
關于.net控件數組的探討
縣級臺在突發事件報道中如何應用手機客戶端
孵化垂直頻道:新聞客戶端新策略
大樞紐 云平臺 客戶端——中央人民廣播電臺的探索之路
Web安全問答(3)
網站結構在SEO中的研究與應用
基于嵌入式MINIGUI控件子類化技術的深入研究與應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合