用CostomValidation验证,自己写JavaScript

解决方案 »

  1.   

    好像不行.
    你可以做一个Label提示输入错误,并在后台检查用户输入是否0.25的倍数。如果不是则把Label.Visible设为true
      

  2.   

    if(int.Parse(tbTest.Text.Trim()/0.25==整数))
    {
      ...
    }
    else
    {
      ...
    }
      

  3.   

    照搬QuickStart的例子,修改了下<html>
    <head>
     
        <script language="C#" runat=server>        void ValidateBtn_OnClick(object sender, EventArgs e) {            if (Page.IsValid) {
                   lblOutput.Text = "页有效!";
                }
                else {
                   lblOutput.Text = "页无效!:-(";
                }
            }        void ServerValidate (object source, ServerValidateEventArgs value) {
                try {
                   Double num = Double.Parse(value.Value);
                   if (num%.25 == 0) {
                       value.IsValid = true;
                       return;
                   }
                }
                catch (Exception) {}            value.IsValid = false;
            }   </script></head>
    <body><h3><font face="宋体">CustomValidator 示例</font></h3>
    <p><form runat="server">    <asp:Label id=lblOutput runat="server"
            Text="输入一个数(0.25的倍数):"
            Font-Name="宋体"
            Font-Size="10.5pt" /><br>    <p>    <asp:TextBox id=Text1 runat="server" />    <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server"
            ControlToValidate="Text1"
            ErrorMessage="请输入一个数字"
            Display="Dynamic"
            Font-Name="verdana" Font-Size="10pt">
        </asp:RequiredFieldValidator>    <asp:CustomValidator id="CustomValidator1" runat="server"
            ControlToValidate="Text1"
            ClientValidationFunction="ClientValidate"
            OnServerValidate="ServerValidate"
            Display="Static"
            Font-Name="verdana" Font-Size="10pt">
               不是0.25的倍数!
        </asp:CustomValidator>    <p>    <asp:Button text="验证" onclick="ValidateBtn_OnClick" runat="server" />    <script language="javascript">       function ClientValidate(source, arguments)
           {
              if (arguments.Value%.25 == 0)
                arguments.IsValid = true;
              else
                arguments.IsValid = false;
           }
        </script></form>
    </body>
    </html>
      

  4.   

    可以这样:
    <form id="form1" runat="server">
        // 要验证的控件
        <asp:TextBox id="TextBox1" runat="server" />    // 定义CustomValidator
        <asp:CustomValidator ControlToValidate="TextBox1" OnServerValidate="ServerValidation" Display="static" Runat="server">
                *
        </asp:CustomValidator>
        <br />
        <asp:Button id="Button1" Text="Click here" runat="server" />
    </form>
    然后用
    void ServerValidation (object source, ServerValidateEventArgs arguments) {
        try {
            Double i = Double.Parse(arguments.Value);
            arguments.IsValid = ((i*4) == System.Math.Floor(i*4));
        }
        catch {
            arguments.IsValid = false;
        }
    }
    即可实现服务器端的验证