十进制asp.net后只允许两位数

时间:2011-01-04 17:04:44

标签: asp.net

我有一个文本框,用户必须在十进制后输入两位以上的数字。如何在不使用javascript的情况下执行此操作?

感谢。

3 个答案:

答案 0 :(得分:2)

您可以设置文本框的MaxLength属性,但是没有任何关于小数点是否或位置的概念。

您还可以使用CustomValidator并通过ServerValidate事件检查服务器上输入的号码。但是这需要去服务器检查值(即它最初看起来像你的表单允许用户输入无效的数字)。

您还应该能够使用RegularExpressionValidator,具体取决于您确切的全球化要求,它将在客户端上使用JavaScript来提供即时反馈:

<asp:TextBox ID="NumberTextBox" runat="server" />
<asp:RegularExpressionValidator runat="server" ControlToValidate="NumberTextBox" 
                                ValidationExpression="\d+(?:(?:\.|,)\d{1,2})?" />

如果您希望立即向用户提供反馈,则需要使用基于JavaScript的解决方案。

答案 1 :(得分:1)

如果没有直接或间接使用javascript,您不能使文本框停止接受两位小数后的文本。 (这有时称为输入掩码)。

但是,您可以允许用户输入自由格式文本并在服务器上回发时验证文本。您可以自动为它们舍入数字,也可以向客户端返回错误消息。

答案 2 :(得分:0)

如果您确实需要阻止用户在小数点后输入两位以上的数字,则需要使用JavaScript或为您实现JavaScript的服务器控件。

然而,允许他们输入任意数量的数字然后在验证时捕获它(或者只是舍入到两位数)可能更有意义。