A. 怎樣讓web 驗證控制項只對一個控制項有效
把LinkButton的CausesValidation屬性設置為false,驗證控制項就不會對該控制項進行驗證了。不過這個只能在ASP.NET2.0下可行。不知道您用的是哪個版本?
B. asp.net(C#web)RangeValidator驗證控制項,要對兩個按鈕中的一個不敏感
把不要激發驗證的那個Button的CauseValidation屬性設為False就行了
C. C#web編程 button控制項在激發驗證後沒有觸發button的click事件,怎麼辦。
把驗證控制項的優先順序降到click點擊事件後面,把驗證事件寫在點擊事件裡面。
D. ASP。NET中以什麼方式進行數據驗證
在ASP中進行表單數據驗證時,通常開發者必須自己編寫一套驗證的規則,然後自己將這些代碼拷貝到ASP代碼中對表單進行驗證。這樣進行驗證的方式實在不太方便,幸運的是,ASP.NET解決了這個問題,這就是數據驗證Web控制項。
數據驗證控制項是ASP.NET中專門用來驗證表單用戶輸入的控制項。比如, RequiredFieldValidation就是一個專門用來驗證用戶是否已經輸入的控制項,使用這個控制項,可以保證用戶一定輸入了表單的某個表單項(比如數據輸入框)。另外,ASP.NET還專門提供了以下數據驗證控制項:
1. RequiredFieldValidator:檢查用戶是否輸入;
2. CompareValidator:檢查兩個表單輸入項的輸入信息是否存在某種指定關系,比如大、等於等;
3. RangeValidator:檢查用戶輸入是否在某一指定范圍;
4. RegularExpressionValidator:檢查用戶輸入是否符合某一指定的正則表達式要求;
5. CustomValidator: 檢查用戶輸入是否符合開發者指定的驗證邏輯規則。
本文的目的不是在於討論以上所有控制項的用法,如果希望了解其他控制項,可以參看:
http://samples.gotdotnet.com /quickstart /aspplus/doc /webvalidation.aspx。
CustomValidator控制項概述
簡單地使用前面提到的前四個數據驗證控制項,就可以實現我們一般開發的大部分數據表單的驗證要求。然而,有時候我們需要驗證一些比較復雜的表單。想像一下,我們有一個比較復雜的調查表,該調查表包含一個有很多單選按鈕和多選按鈕的表單,一些多選按鈕和個人的愛好相對應,比如游泳、體育、閱讀等,調查表希望被調查人選擇自己的所有愛好。在這些選項下面,提示如下文字:「如果你提示有體育和游泳兩種愛好,請選擇您什麼時候開始學習游泳」,在這些文字下方放置一些標識年齡段的單選按鈕,這些按鈕是否有效取決於我們在前面提到的多選按鈕的選擇情況。在以上的驗證情況中,我們就要使用到CustomValidator數據驗證控制項。
在所有的ASP.NET數據驗證控制項中,都有一個「ControlToValidate」的控制項屬性需要設置,這個屬性用來指定表單中需要驗證的表單項。在CustomValidator數據驗證控制項中,需要做以下事情:
1. 讀取需要CustomValidator驗證的表單項值;
2. 執行驗證操作;
3. 決定被驗證表單項是否符合驗證要求。
在其他內建控制項中,以上步驟用戶是不知道也不要理睬的,但是,在使用CustomValidator的時候,我們需要自己動手實現以上步驟。為了實現以上步驟,我們需要編寫一個伺服器端數據驗證函數,該函數的樣式如下:
Sub FunctionName(sender as Object, args as ServerValidateEventArgs)
……
End Sub
注意以上函數的args參數,它是FunctionName函數的第二個參數,這個參數有以下兩個屬性:
1. Value:被驗證數據表單的值。
2. IsValid:驗證是否通過。如果通過,IsValid的值是True; 如果沒有通過,其值為False。
在使用CustomValidator的時候,我們不但要設置「ControlToValidate」屬性,我們還必須設置OnServerValidate事件來處理伺服器端的數據驗證動作。
建立一個簡單的
CustomValidator控制項
假設現在建立一個與數學有關的網站,在這個網站,我們要求瀏覽者提供自己喜歡的質數,以此來提高我們網站的訪問量。在ASP.NET中,沒有一個現成的可以專門驗證質數的伺服器端數據驗證控制項,這樣,我們就有必要用到CustomValidator控制項。
以下例子用來驗證用戶輸入的數是不是質數。在這個表單中,有一個用戶輸入數據的TextBox控制項和一個Button控制項,還有用於驗證是不是質數的CustomValidator控制項,和兩個用於保證用戶輸入為正數的CompareValidator控制項。
< script language=「vb」 runat=「server」 >
Sub btnSubmit_Click(sender as Object, e as EventArgs)
If Page.IsValid then
Response.Write(「< font color=「「red」」>
< i>」& txtPrimeNumber.Text & 「is, indeed, a good prime number.
< /i>< /font>」)
Else
Response.Write(「< font color=「「red」」>
< i>」 & txtPrimeNumber.Text & 「is < b>not< /b>
a prime number.< /i>< /font>」)
End If
End Sub
Sub PrimeNumberCheck(sender as Object, args as
ServerValidateEventArgs)
Dim iPrime as Integer = Cint(args.Value),
iLoop as Integer, iSqrt as Integer = CInt(Math.Sqrt(iPrime))
For iLoop = 2 to iSqrt
If iPrime mod iLoop = 0 then
args.IsValid = False
Exit Sub
End If
Next
args.IsValid = True
End Sub
< /script>
< form method=「post」 runat=「server」>
Enter your favorite prime number:
< asp:textbox id=「txtPrimeNumber」 runat=「server」 />
< %-- 建立CustomValidator 控制項 --%>
< asp:CustomValidator runat=「server」
id=「custPrimeCheck」
ControlToValidate=「txtPrimeNumber」
OnServerValidate=「PrimeNumberCheck」
ErrorMessage=「Invalid Prime Number」/>
< %-- 建立兩個CompareValidator控制項:第一個保證輸入為數字;
第二個保證輸入為正數 --%>
< asp:CompareValidator runat=「server」
id=「compPrimeNumber」Operator=「DataTypeCheck」
Type=「Integer」
Display=「Dynamic」 ControlToValidate=
「txtPrimeNumber」ErrorMessage =
「You must enter an integer value.」/>
< asp:CompareValidator runat=「server」
id=「compPrimeNumberPositive」Operator=「GreaterThan」
Type=「Integer」
Display=「Dynamic」 ValueToCompare=「0」
ControlToValidate=「txtPrimeNumber」
ErrorMessage =「You must enter a value
greater than zero.」/>
< p>< asp:button id=「btnSubmit」 runat=
「server」OnClick=「btnSubmit_Click」 Text=「Submit」 />
< /form>
如果對判定質數不是太熟悉,可能對於以上的PrimeNumberCheck 事件處理感覺比較迷惑。首先,將用戶在txtPrimeNumber輸入的數據通過事件的args.value傳送給txtPrimeNumber,然後,將用戶的輸入開平方根,再將用戶輸入的數字除以從2到剛才算出的平方根之間的每一個數字。如果出現結果為零的情況,說明用戶輸入的數字不是質數,設置 args.isValid為False; 如果全部為零,說明用戶輸入合法,設置args.isValid為True。
客戶端驗證
ASP.NET內建數據驗證控制項的一大特點就是它們的所有驗證都是在客戶端進行的,不需經過伺服器端,而CustomValidator控制項的錯誤驗證完全是通過伺服器端實現的。必須意識到的一點是,不管是否通過客戶端實現數據驗證,伺服器端的數據驗證是一定會產生的。增加客戶端驗證的功能,只是讓我們的數據驗證控制項更加友好。
為了實現客戶端驗證的功能,我們必須使用JavaScript或者VBScript寫一個腳本函數,因為VBScript只支持IE瀏覽器,因此,這里我們採用JavaScript來編寫這個函數:
< script language=「JavaScript」 >
< !--
function CheckPrime(sender, args)
{ var iPrime = parseInt(args.Value);
var iSqrt = parseInt(Math.sqrt(iPrime));
for (var iLoop=2; iLoop< =iSqrt; iLoop++)
if (iPrime % iLoop == 0)
{ args.IsValid = false;
return;
}
args.IsValid = true;
}
// -->
< /script >
在這個例子裡面,我們輸入數字6,然後按「Tab」按鈕。在高版本的瀏覽器裡面,我們將看到來自CustomValidator控制項的錯誤信息,這樣,我們的CustomValidator控制項也就有了客戶端驗證功能。在以上代碼中,可能已經注意到我們並沒有定義數據sender和args的類型,因為在腳本語言中,是沒有嚴格的數據類型定義的。
為了實現客戶端數據驗證,惟一要做的就是在CustomValidator控制項定義中加入以下語句:ClientValidationFunction=「CheckPrime」,這里,其實就是指定自定義驗證控制項的客戶端驗證函數。在這個例子里,前面定義的「CheckPrime」函數就是客戶端驗證函數。
總結
上面我們介紹了ASP.NET中幾乎是功能最靈活的數據驗證控制項CustomValidator的使用,介紹了CustomValidator控制項的伺服器端驗證和客戶端驗證的實現。盡管在實際的開發工作中,可能我們使用ASP.NET的內置數據驗證控制項幾乎完全可以滿足我們的開發要求,但是若能了解CustomValidator控制項的使用和特點將會更有利於解決在工作中碰到的數據驗證問題。
E. C#使用VS2012編寫WEB程序,驗證控制項文言如何顯示
是這樣的,你這個肯定是要驗證對方填寫的必須是郵件格式吧?
你是在哪裡寫的驗證郵件格式的正則表達式呢?
首先你不應該用RequiredFieldValidator,這個控制項是驗證非空的。
應該用用RegularExpressionValidator,這個是驗證正則表達式的。
我有個類似的東西你可以借鑒一下:
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ControlToValidate="sqrq" Display="Dynamic"
ErrorMessage="只能輸入數字!" ForeColor="Red"
ValidationExpression="[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"></asp:RegularExpressionValidator>
在ValidationExpression這裡面寫上郵件格式的正則表達式即可。
F. 舉例說明幾個第三方控制項,以驗證碼控制項為例簡述如何使用第三方控制項
你用ASP.NET嗎??
日期控制項、驗證碼控制項、添加水印控制項、編輯器等等
一:先添加引用FredCK.FCKeditorV2.dll
二:工具箱--選項卡-添加FredCK.FCKeditorV2.dll
三:在web.config中添加:
<appSettings >
<add key="FCKeditor:BasePath" value="~/FCKeditor/"/>
<add key="FCKeditor:UserFilesPath" value="/fcke/UserFiles/"/>
</appSettings>
fcke為項目名稱,UserFiles為項目下的一個空文件夾,一定要創建。
四:現在需要修改剛才復制的文件夾FCKeditor裡面的一個fckconfig.js 文件
var _FileBrowserLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'asp' ; // asp | aspx | cfm | lasso | php
把asp修改成aspx 一定要修改
五:在web.config中有時添加 <compilation debug="true">,在使用頁面中加入
page中加入 ValidateRequest ="false"
五:獲取FredCK.FCKeditorV2的值
lable1.text= FCKeditor1 .value
G. ASP.NET網頁製作中驗證控制項的使用
在頁面裡面加上<form runat=server></form>就行了
axd是asp.net的資源文件
裡面放的JS css 圖片等等東西
不過必須有頁面上有服務端的form才會添加進來
H. web伺服器控制項從類型上劃分,主要可劃分為哪4大類
標准控制項,驗證控制項,用戶自定義控制項,資料庫控制項
I. 在web伺服器驗證控制項與被驗證的控制項之間是通過什麼屬性進行關聯的
在web伺服器驗證控制項與被驗證的控制項之間是通過ControlToValidate屬性進行關聯的