• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • CustomValidator Web 控件

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    如果我們所要處理的數據有上列數據驗證Web 控件無法執行的特殊表達式,可以利用CustomValidator Web 控件可以讓我們自定數據的檢驗方式。其使用語法為: ASP:CustomValidator Id=被程序代碼所控制的名稱 Runat=Server ControlToValidate=要驗證的控件名稱 On


        如果我們所要處理的數據有上列數據驗證Web 控件無法執行的特殊表達式,可以利用CustomValidator Web 控件可以讓我們自定數據的檢驗方式。其使用語法為:

    <ASP:CustomValidator
    Id="被程序代碼所控制的名稱"
    Runat="Server"
    ControlToValidate="要驗證的控件名稱"
    OnServerValidate="自訂的驗證程序"
    ErrorMessage="所要顯示的錯誤信息"
    Text="未通過驗證時所顯示的訊息"
    />

    其常用屬性說明如下表所示:

        CustomValidator Web 控件在執行自訂的驗證時,是呼叫OnServerValidate 屬性所指定的程序來執行驗證;當被呼叫的程序傳回True 時則表示驗證成功,傳回False 則表示驗證失敗。其方法的宣告語法如下所示:

    Function 程序名稱(Sender As Object, Value As String)As Boolean
    '驗證成功
    Return True
    '驗證失敗
    Return False
    End Function

        由于這個事件程序要明確的宣告傳回值的數據型態,所以這里我們要在這個事件程序以Function來宣告,并且要指明傳回值的型態為Boolean。另外程序內所接收的第二個參數Value 表示使用者輸入的資料,我們可以將這個參數作驗證后,再傳回代表驗證成功的True 或驗證失敗的False。下列范例限制使用者必須輸入十的倍數才可以通過驗證:

    <Html>
    <Form Id="Form1" Runat="Server">
    請輸入10 的倍數: <ASP:TextBox Id="txtValue" Runat="Server"/>
    <ASP:Button Id="btnOK" Text="確定" OnClick="btnOK_Click"
    Runat="Server"/><br>
    <ASP:CustomValidator Id="Validor1" Runat="Server"
    ControlToValidate="txtValue"
    OnServerValidate="CustVali"
    Text="必需輸入十的倍數!"/><br>
    <ASP:Label Id="lblMsg" Runat="Server"/>
    </Form>
    <Script Language="VB" Runat="Server">
    Function CustVali(Sender As Object, Value As String)As Boolean
    If Value.ToInt16 Mod 10=0 Then
    Return True
    Else
    Return False
    End If
    End Function
    Sub btnOK_Click(Sender As Object,e As Eventargs)
    If Page.IsValid Then
    lblMsg.Text="驗證成功!"
    Else
    lblMsg.Text="驗證失敗!"
    End If
    End Sub
    </Script>
    </Html>


        下列的范例為驗證使用者的身分證號碼。身分的驗證在網頁的應用上蠻常見的,首先我們先來了解驗證的公式。身分證號碼有十位數,我們將這十個位數進行編號,從第一位數F1 編到第十位數F10;如下所示:

    其中英文字母有特定的編號,如下表所示:


    身分證驗證的公式為:

    總和=(F10 的個位數+(F10 的十位數
    ×9)+(F9×8)+(F8×7)+( F7×6)+( F6×5)+( F5×4)+( F4×3)+( F3×2)+( F2
    +F1))

    如果總和除以10 可以被整除,那么表示使用者所輸入的身分證號碼是正確的。其驗證的程序代碼如下所示:

    <Html>
    <Form Id="Form1" Runat="Server">
    請輸入身分證號碼: <ASP:TextBox Id="txtValue" Runat="Server"/>
    <ASP:Button Id="btnOK" Text="確定" OnClick="btnOK_Click"
    Runat="Server"/><br>
    <ASP:CustomValidator Id="Validor1" Runat="Server"
    ControlToValidate="txtValue"
    OnServerValidate="CustVali"/><br>
    <ASP:Label Id="lblMsg" Runat="Server"/>
    </Form>
    <Script Language="VB" Runat="Server">
    Function CustVali(Sender As Object, Value As String)As Boolean
    If Len(Value)<>10 Then '如果位數小于10
    Validor1.Text="請輸入十位數!"
    Return False
    Else If Char.IsLetter(Left(Value,1))=False Then '檢查第一個字符是
    不是英文字母
    Validor1.Text="必須以英文字母開頭!"
    Return False
    End if
    Dim shtI, shtJ, shtK As Short
    For shtI=2 To 10 '檢查第二位至第十位是否為數值
    If IsNumeric(Mid(Value, shtI, 1))=False Then
    Validor1.Text="第二位至第九位必須是數值!"
    Return False
    End If
    Next
    '以下依序宣告26 個英文字母所代表的編號
    Dim arF1() As Short = {10,11,12,13,14,15,16,17,34,18,19,20,21, _
    22,35,23,24,25,26,27,28,29,30,41,42,33}
    shtI=arF1(Asc(UCase(Left(Value,1)))-65) '取得使用者輸入英文字母
    的編號
    For shtJ=2 To 8 '計算加總
    shtK+=Mid(Value, shtJ, 1).ToInt16 * (10-shtJ)
    Next
    shtK+=Mid(Value, 9, 1).ToInt16 + Mid(Value, 10, 1).ToInt16 + _
    Left(shtI.ToString, 1).ToInt16 + (Left(shtI.ToString,
    2).ToInt16 * 9)
    If shtK Mod 10 <> 0 Then '如果算式加總不能被10 整除
    Validor1.Text="您所輸入的身分證號碼不正確!"
    Return False
    Else
    Return True '驗證成功, 傳回True
    End If
    End Function
    Sub btnOK_Click(Sender As Object,e As Eventargs)
    If Page.IsValid Then
    lblMsg.Text="驗證成功!"
    Else
    lblMsg.Text="驗證失敗!"
    End If
    End Sub
    </Script>
    </Html>


    如果只輸入三位數。

    如果只輸入十位數值。

    如果隨便輸入身分證號碼。

    如果輸入A123456789 正確的身分證號碼。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>