Frage

Ich versuche, eine Zahl, wie eine Telefonnummer in einem Datensatz als String gespeichert anzuzeigen. Ich habe ein Label, dass Wird auf einen Wert, aber nicht das Format angezeigt, dass ich als arg übergeben:

<asp:Label ID="lbl005108002" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "phone number", "{0:(###) ###-####}") %>'></asp:Label>

Als Test habe ich versucht, die formated Zeichenfolge in das Dataitem zu passieren, aber das hat nicht funktioniert entweder. Gibt es etwas anderes muss ich tun, um diese Funktion zu nutzen?

m_Row("phone number") = String.Format("{0:(###) ###-####}", value)

Der Wert zeigt in beiden Fällen als: 04152543926

War es hilfreich?

Lösung

Ich ziehe die Datenbindung in meinem Code-Behind zu tun:

<asp:Label ID="lbl005108002" runat="server" Text="" OnDataBinding="lbl005108002_DataBinding"></asp:Label> 

Code-Behind:

protected void lbl005108002_DataBinding(object sender, System.EventArgs e)
{
    Label lbl = (Label)(sender);
    lbl.Text = String.Format("{0:(###) ###-####}", (int)(Eval("phone number")));
}

Ich denke, der Schlüssel, Besetzung ist so int dass die Forma weiß, wie man mit dem Wert beschäftigen Sie es senden. Ich ziehe dies in Code-Behind zu tun, weil manchmal zu stopfen alles Inline versucht, macht die Dinge weniger explizit.

Andere Tipps

Was Typ ist Wert? Dies scheint Format ok für mich:

     int phone_num = 1231231234;
     string f = String.Format("{0:(###) ###-####}", phone_num);

Eine alternative Möglichkeit ist:

Dim i as Integer = 5551234567 Dim s As String = i.ToString ( "(###) ### - ####")

Das ToString ist die schnelle Weise, die ich verwende. Was ich tat, ist in th eCommand Fenster ich dies tat:

? 5551234567.ToString("(###) ###-####")

Das Ergebnis war:

"(555) 123-4567"

Also ich bin sicher, dass es funktioniert. Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top