ASP.NET中使用自定義驗證控件
2024-07-10 12:56:43
供稿:網友
中國最大的web開發資源網站及技術社區,
asp.net 1.1中,有不少驗證控件,大大方便了我們,但有的時候,當需要做特殊的驗證時,還會覺得不夠用的,于是我們可以用自定義驗證控件customvalidator,要使用這個控件,必須在服務端寫相應的事件,格式如下:
sub functionname(sender as object, args as servervalidateeventargs)
...
end sub
其中注意兩個參數 value:指示當前的customvalidator驗證的是哪一個控件 isvalid:為真時,表示頁面控件已經通過驗證。舉一個驗證頁面中文本框的輸入是否為素數的例子:<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" />
<%-- create the customvalidator control --%>
<asp:customvalidator runat="server" id="custprimecheck"
controltovalidate="txtprimenumber"
onservervalidate="primenumbercheck"
errormessage="invalid prime number" />
<%-- create two comparevalidator controls: the first ensures that
the number entered by the user is an integer; the second
makes sure it is positive. --%>
<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>
可以看到,在驗證控件中, onservervalidate="primenumbercheck"中,要定義具體的onservervalidate事件
,之后,在具體的事件處理過程中,一定要返回args.isvalid的值,以價講明是否驗證成功;當然,最后要用page.isvalid屬性來進行全面驗證