2015-05-22 48 views
2

我有這個文本框應該顯示貨幣值2個十進制數字。我想使用文本框的「文本」屬性。那可能嗎?是否可以在ASP NET中爲貨幣格式化文本框?

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

謝謝。

+1

你想使用客戶端庫,如JavaScript或jquery或只有ASP在文本框上使用ontextchanged事件appennd ? – Mivaweb

+0

嗨,我想用Text ='<%#Eval((「value」),「{0:f2}」)%>'來顯示它四捨五入到兩位小數。 –

+1

據我所知,你只想要服務器端代碼,使你的面具,但它會導致每個textchange操作回發,因爲@Mivaweb提到它應該使用ontextchanged事件 – brtb

回答

3

您可以將TextBox包裝在<asp:UpdatePanel>中,並添加TextChanged事件的AsyncPostBackTrigger。您可以使用它來驗證,驗證和更改服務器端的字符串。

+0

貨幣我推薦你解析文本文本到一個雙格式 像這樣: 'double d = double.parse(txtImponibile.Text)'' –

0

顯然這是不可能的。我在等待人們放棄我。順便說一句,這是我如何解決:

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

是的,你可以

string.Format("$ {0:#,##0.00}", double.Parse(textBox1.Text)); 
在這種情況下

是全球inefective它會顯示$符號,並使用commma(,)爲千個分隔符和點/點(。)爲十進制。 (你可以從西班牙更改貨幣辛博爾好嗎但分隔但是不會改變。考慮到這一點,如果你正在爲交匯處開發語言separtors點爲thusands和逗號用於小數前,西班牙)

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/