当前位置:  开发笔记 > 编程语言 > 正文

强制ASP.NET文本框以$符号显示货币

如何解决《强制ASP.NET文本框以$符号显示货币》经验,为你挑选了2个好方法。

有没有办法让ASP.NET文本框只接受货币值,并且在验证控件时,事先插入$符号?

例子:

10.23变为$ 10.23
$ 1.45 $ 1.45
10.a由于不是有效数字而引起错误

我有一个RegularExpressionValidator验证号码是否有效,但我不知道如何强制$符号进入文本.我怀疑JavaScript可能有用,但想知道是否还有其他方法可以做到这一点.



1> Forgotten Se..:

AJAX Control Toolkit中的ASP.NET MaskedEdit控件可以完成您的要求.



2> Jim Schubert..:

我知道答案已被接受,但我想为有相同问题并寻找多种解决方法的任何人抛弃另一种解决方案.

我这样做的方法是使用jQuery 格式货币插件绑定客户端的用户输入.在服务器端解析此输入仅需要:

// directive
using System.Globalization;

// code
decimal input = -1;
if (decimal.TryParse(txtUserInput.Text, NumberStyles.Currency, 
    CultureInfo.InvariantCulture, out input))
{
    parameter = input.ToString();
}

唯一的缺点就是用户可以关闭javascript,在这种情况下,运行服务器端的RegEx验证器可以作为后备.如果控件是数据绑定的,那么您所要做的就是decimalValue.ToString("{0:c}"),如其他人所述,为了显示正确的货币格式.

关于这一点很酷的是,如果用户输入文本框并$0.00在客户端显示,则服务器端if语句将返回false.如果您的十进制值在数据库中不可为空,只需更改decimal input = -1decimal input = 0,您将拥有默认值0.

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有