ASP.NET支持以下驗證控制項 RequiredFieldValidator(非空驗證) 確保用戶沒有跳過輸入控制項。RequiredFieldValidator控制項可以與文本框綁定在一起,以便強制用戶對文本框進行輸入。使用選擇控制項,例如,對於下拉框控制項和單選按鈕,RequiredFieldValid ...
ASP.NET支持以下驗證控制項
RequiredFieldValidator(非空驗證)
確保用戶沒有跳過輸入控制項。RequiredFieldValidator控制項可以與文本框綁定在一起,以便強制用戶對文本框進行輸入。使用選擇控制項,例如,對於下拉框控制項和單選按鈕,RequiredFieldValidator都可確保用戶選擇使用,而不必使用指定的預設值。RequiredFieldValidator不檢查數據的有效性,只是保證一些數據的輸入或者被選擇。
RangeValidator(範圍驗證)
確保輸入的數字在指定的範圍內。您可以檢查在一對數字之間的範圍(大於10小於100之間),一對字元之間的範圍(D與K之間的字元),或者一對日期之間的範圍(1/1/01之後到2/28/01之前)
CompareValidator(比較驗證)
比較用戶輸入和其他數值。它可以和一個指定的時間比較,或者和另外的一個控制項的屬性值比較。同樣可以與資料庫中的值進行比較。
RegularExpressionValidator (正則表達式驗證)
它是最強大的驗證控制項之一,它可以把用戶輸入和提供的表達式進行比較。可以使用這個驗證控制項來檢查有效的社會保險號碼、電話號碼、密碼等等。
由於本次課程內容主要討論驗證控制項,有關正則表達式大知識請查閱相關內容
CustomValidator(用戶自定義驗證)
如果沒有符合需要的控制項,那麼可以使用CustomValidator控制項。它能夠檢查出用戶的輸入是否違背了由自定義方法所提供的演算法。
ValidationSummary (驗證錯誤顯示集合)
ValidationSummary控制項是用於顯示驗證所有驗證錯誤摘要的控制項,當我們將驗證控制項的Display屬性設置None的時候,驗證錯誤信息就在這裡顯示。
ValidationSummary控制項有三個常見屬性:
屬性名 |
說明 |
DisplayMode |
指定顯示模式,有BulletList、List、SingleParagraph三種模式 |
ShowMessageBox |
是否以客戶端提示框的信息顯示驗證錯誤信息摘要 |
ShowSummary |
是否在網頁中採用內聯方式顯示錯誤摘要 |
驗證控制項常用屬性:
通過將焦點放在第一個無效的驗證控制項上,可以使頁面更友好。為此,可以為每個驗證控制項添加SetFocusOnError屬性,並將其設置為true(預設為false)
註意 :當單擊”提交”按鈕時,頁面會 被髮送到伺服器。每個驗證控制項都將被檢查,如果每個控制項都有效,那麼頁面的IsValid屬性將返回true。
由於驗證控制項的用法上網一搜一大把,我們就不再贅述了。
經驗:高版本瀏覽器支持DHTML,.NET驗證在客戶端完成,這避免了返回服務端處理的過程。在低版本瀏覽器中。這些代碼沒有改變,但是代碼必鬚髮送到客戶端,才能保證伺服器端進行驗證。甚至是在客戶端驗證完成後,數值才最終在伺服器端驗證,這也是一個安全的方法。如果控制項無效,則必須強制執行伺服器端驗證。因為客戶端驗證將組織伺服器端代碼的運行在這種情況下課將ClientTarge屬性添加到@page指令。<%@page ClientTarget=”downlevel”%>。這個指令將導致在伺服器端執行驗證,甚至在瀏覽器可以支持DHTML和客戶端驗證的情況下也是如此。
有時候,無需進行任何驗證,例如當單擊了”Cancel”按鈕。為此,許多回傳空間,例如:ImageButton、LinkButton等,都有一個CauseValidation屬性,該屬性指示是否引發控制項的預設事件時執行驗證。如何CauseValiation屬性設置為true,即預設值,那麼當頁面發生驗證失敗時,不會進行頁面回傳。然而,如果CauseValidation屬性設置為false,那麼用戶回傳頁面的按鈕將不執行驗證過程。
Display屬性設置為Static,即告知ASP.NET,無論是否顯示信息都必須為其分配頁面空間。如果該屬性設置為Dynamic,那麼直到顯示錯誤信息時才為其分配空間。動態分配功能很強大,但是當信息顯示時,可能會導致控制項在頁面上跳轉。