使用自定义Validator服务器控件

时间:2011-11-28 17:42:20

标签: asp.net

我需要编写一个自定义验证器来检查文本框是否有一个带小数的数字,例如95.3。在asp.net中验证器服务器控件中要完成的表达式是什么?

4 个答案:

答案 0 :(得分:0)

不确定这是否正是您正在寻找的,但是很久以前我看到的这篇文章有点解释了如何做到这一点。你可能想看看: http://aspdotnet-sequel.blogspot.com/2009/05/aspnet-textbox-validate-integer-float.html

答案 1 :(得分:0)

这样的东西应该可行,你可以修改为允许你需要或想要的小数位数:

\d{0,}.\d{0,2}

假设您正在谈论正则表达式。但是,如果你是,你应该使用正则表达式验证器而不是自定义验证器。

此外,这里是另一个非常相似的问题的链接。 link

答案 2 :(得分:0)

在validator_ServerValidate事件中,您可以执行此操作:

Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
    If args.Value.Contains(".") Then
        '*** Textbox has a decimal...do what you need to handle it  ***'

    End If
End Sub

但是正如其他人所提到的那样,在不知道确切需要发生什么的情况下,您可能希望查看正则表达式验证器并尝试在客户端而不是服务器端进行验证(除非你需要在回发上发生它)

答案 3 :(得分:0)

请尝试以下方法:

float f;
bool isFloat =float.TryParse("a.0", out f); //Will return false

bool isFloat2 =float.TryParse("95.3", out f); //will return true
祝你好运!