.netカスタム検証コントロールCustomoValidatorの使用

2140 ワード

本論文は、http://tech.cncms.com/web/aspnet/96310.htmlから回転する。
 
Custom Validatorはコントロールを検証して、ユーザー定義の検証関数ができます。他のいくつかの検証コントロールでは実現できない検証ルールを実現します。一番簡単な応用は以下の通りです。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CustomValidatorDemo.aspx.cs" Inherits="CustomValidatorDemo" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>          </title>

    <script type="text/javascript"> 
    function IsEven(source, args)
    {
        if (args.Value % 2 == 0 )
        {
            arg.IsValid = true;
        } 
        else 
        {
            args.IsValid = false;
        }
    }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
          :<asp:TextBox ID="txtEven" runat="server"></asp:TextBox>
        <asp:CustomValidator ID="valgEven" runat="server" ControlToValidate="txtEven" ErrorMessage="        "
            ClientValidationFunction="IsEven">*</asp:CustomValidator>
        <br />
        <asp:ValidationSummary ID="valsErrorMessage" runat="server" />
        <asp:Button ID="btnSubmit" runat="server" Text="  " />
    </div>
    </form>
</body>
</html>
1、関数名はClienntValidation Function=「IsEven」で指定されています。関数の名前は自分で決められます。例えば、いくつかの例ではargsをargmentsと書いてもいいです。
2、形参argsは主に二つの属性のargs.Valueとarg.IsValidがあります。この二つの属性は大きさに注意して書きます。
3、カスタム検証コントロールはオンセサーバーvalidateイベントをトリガし、サーバー側でも検証コードを作成することができますが、このようにすれば、検証コントロールがクライアントで検証する意味を失ってしまいます。