【问题标题】:Is it possible to format a Textbox for currency just in ASP NET?是否可以仅在 ASP NET 中为货币格式化文本框?
【发布时间】:2015-05-22 07:57:59
【问题描述】:

我有这个文本框,应该将货币值显示为 2 个十进制数字。我想使用文本框的“文本”属性。这可能吗?

<asp:TextBox ID="txtImponibile" runat="server" Width="120px" Enabled="False" ></asp:TextBox>

谢谢。

【问题讨论】:

  • 您想使用客户端库(如 javascript 或 jquery)还是仅使用 ASP 并在文本框上使用 ontextchanged 事件追加?
  • 嗨,我想使用类似 Text='' 的东西来显示它四舍五入到两个小数。
  • 据我了解,您只需要服务器端代码来制作您的掩码,但它会导致每个 textchange 操作的回发,因为正如@Mivaweb 提到的那样,您应该使用 ontextchanged 事件
  • 如果我想要客户端怎么办?我的意思是我怎么能这样做?

标签: asp.net textbox formatting currency


【解决方案1】:

是的,你可以:

string.Format("$ {0:#,##0.00}", double.Parse(textBox1.Text));

在这种情况下它是全局无效的,因为它将显示 $ 符号,使用逗号 (,) 作为千位分隔符和点/点 (.) 作为小数。 (您可以更改货币符号,但分隔符不会改变。请注意,如果您正在开发的语言将分隔符点交换为千位,逗号交换小数。例如:西班牙语)

string.Format(CultureInfo.CurrentCulture,"{0:C}", double.Parse(textBox1.Text));

这将为您提供货币,但这种情况取决于您为网站设置的文化。我知道如何按页面配置它: aspx 文件中的第一行 HTML 代码。

<%@ Page Language="C#" AutoEventWireup="true" Culture="es-HN" UICulture="es-HN" CodeBehind="yourpage.aspx.cs" Inherits="yoursite.yourpage" %>

有一种方法可以在 web.config 文件中配置它,但我不知道如何。我鼓励你去寻找它。到目前为止,我只是在每个页面上包含 [Culture="es-HN" UICulture="es-HN"] 并且它可以工作。顺便说一句,这些价值观适用于洪都拉斯,因此如果您需要其他文化价值观,请在此处查找它们:www.csharp-examples.net/culture-names/

【讨论】:

    【解决方案2】:

    您可以将 TextBox 包装在 &lt;asp:UpdatePanel&gt; 中并添加 TextChanged 事件的 AsyncPostBackTrigger。您可以使用它从服务器端验证、验证和更改字符串。

    【讨论】:

    • 对于货币,我建议您将文本框文本解析成这样的双重格式:double d = double.parse(txtImponibile.Text)
    【解决方案3】:

    显然这是不可能的。我在等人来证实我。顺便说一句,我就是这样解决的:

    textBox1.Text = string.Format("{0:#,##0.00}", double.Parse(textBox1.Text));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多