我有一个范围验证器,如下所示。它用于限制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>
答案 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;
}