Pregunta

Estoy tratando de mostrar un número, almacenada en un conjunto de datos como una cadena, como un número de teléfono. Tengo una etiqueta que se une a un valor, pero no muestra el formato que pasé como un arg:

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

Como prueba Traté de pasar la cadena con formato en el dataitem pero eso tampoco funcionó. ¿Hay algo más que tenga que hacer con el fin de utilizar esta función?

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

este valor se muestra en ambos casos como: 04152543926

¿Fue útil?

Solución

Yo prefiero hacer el enlace de datos en mi código subyacente:

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

En el código subyacente:

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

Creo que la clave es que la fundición a int para que el formateador sabe cómo tratar con el valor que se está enviando. Yo prefiero hacer esto en código subyacente porque a veces tratando de meter todo en línea hace que las cosas menos explícita.

Otros consejos

¿Qué tipo es el valor? Esto parece bien para mí formato:

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

Una forma alternativa es:

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

El ToString es la forma más rápida que yo uso. Lo que hice es en º ventana eCommand Hice esto:

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

El resultado fue:

"(555) 123-4567"

Así que estoy seguro de que funciona. Buena suerte!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top