范围验证器 - 检查整数范围时输入的字母

时间:2010-09-23 09:47:31

标签: asp.net

我有一个范围验证器,如下所示。它用于限制1900到2070之间的值。但是,当我输入字母表时它会触发错误。我希望只有在用户输入整数值时才会触发此操作。我该如何克服它?请帮忙..

                        <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtYear"
                            ValidationGroup="report" ErrorMessage="EM1|Year" MaximumValue="2079" MinimumValue="1900"
                            SetFocusOnError="True" Display="Dynamic" Type="Integer">
                                            <img src="../../Images/error.gif" alt="Format" />
                        </asp:RangeValidator>

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可以使用自定义验证程序。 它可能看起来像这样

将此作为验证码 -

  <asp:customvalidator ID="Customvalidator1" ControlToValidate="txtYear" runat="server"
             EnableClientScript="true"
             errormessage="CustomValidator" 
        onservervalidate="Customvalidator1_ServerValidate"></asp:customvalidator>

在你的代码中使用它 -

protected void Customvalidator1_ServerValidate(object source,ServerValidateEventArgs args)

    {

        int result;

        if (int.TryParse(txtYear.Text,out result))
        {
            if (1900 <= result && result <= 2079)
                args.IsValid = true;
            else
                args.IsValid = false;
        }

        args.IsValid = true;
    }