2017-07-17 5 views
1

wenn ich versuche, Nummer in Asp-Repeater zu formatieren. Ich verwende Xpath und Xml Datenquelle. Es sagt keinen Fehler, aber ich behalte es einfach, ohne Dezimalzahlen.Formatierung und Nummer mit Xpath und Xmldatasource

<asp:Repeater ID="rptCvrInfo" OnItemDataBound="rptCvrInfo_ItemDataBound" runat="server" DataSourceID="DataSource1"> 
<itemtemplate>  
    <asp:Label ID="lblEquity" Text='<%# FormatAmount(XPath("Equity"))%>' runat="server" /> 
</itemtemplate> 
</asp:Repeater> 

Meine Code-Behind-Methode

public static string FormatAmount(object In) 
{ 
    Decimal amount = Decimal.Parse(In.ToString(), new NumberFormatInfo() { NumberDecimalSeparator = "," }); 

    return amount.ToString();  
} 

xmlnode aus dem Dokument

<Equity contextRef="ctx37" unitRef="DKK" decimals="-3">101015000 
+0

Meine Code-Behind-Methode public static string FormatAmount (Objekt-In) { Dezimal Betrag = Decimal.Parse (In .ToString(), neue NumberFormatInfo() {NumberDecimalSeparator = ","}); return amount.ToString(); } xmlnode aus dem Dokument 101015000 –

Antwort

0

dass 101015000 Unter der Annahme, ist der Wert, den Sie Dezimal konvertieren möchten, müssen Sie eine formatierte Zeichenfolge von Ihnen Methode zurückgeben . Alles, was Sie jetzt tun, ist, es in eine Dezimalzahl umzuwandeln und dann genau so zurückzusenden, wie es war. Sie können eine formatierte Dezimalzahl als Zeichenfolge zurückgeben.

return string.Format("{0:N2}", amount); 

oder Inline ohne Methode in Code hinter

<%# string.Format("{0:N2}", Convert.ToDecimal(XPath("Equity"))) %> 

Siehe https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings

+0

Dank es funktionierte perfekt :) –