Формат строки не работает - PullRequest
1 голос
/ 26 мая 2010

Я пытаюсь отобразить номер, сохраненный в наборе данных в виде строки, в качестве номера телефона. У меня есть метка, которая привязывается к значению, но не отображает формат, который я передал как arg:

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

В качестве теста я пытался передать форматированную строку в элемент данных, но это тоже не сработало. Есть ли что-то еще, что мне нужно сделать, чтобы использовать эту функцию?

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

Значение отображается в обоих случаях как: 04152543926

Ответы [ 3 ]

4 голосов
/ 26 мая 2010

Я предпочитаю привязывать данные в моем коде:

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

В коде позади:

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

Я думаю, что ключ приведен к int, чтобы форматировщик знал, как обращаться со значением, которое вы ему отправляете. Я предпочитаю делать это в codebehind, потому что иногда попытка втиснуть все в строку делает вещи менее явными.

0 голосов
/ 27 мая 2010

Альтернативный способ:

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

ToString - это быстрый способ, которым я пользуюсь. В окне eCommand я сделал следующее:

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

Результат был:

"(555) 123-4567"

Так что я уверен, что это работает. Удачи!

0 голосов
/ 26 мая 2010

Какой тип является значением? Мне кажется, это нормально для меня:

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