Формат строки не работает
-
04-10-2019 - |
Вопрос
Я пытаюсь отобразить номер, сохраненный в наборе данных как строку, как номер телефона. У меня есть метка, которая связывается со значением, но не отображает формат, который я передал как ARG:
<asp:Label ID="lbl005108002" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "phone number", "{0:(###) ###-####}") %>'></asp:Label>
В качестве теста я пытался пройти образованную строку в PatteriTem, но это тоже не работало. Есть ли что-то еще, что мне нужно сделать, чтобы использовать эту функцию?
m_Row("phone number") = String.Format("{0:(###) ###-####}", value)
Значение отображает в обоих случаях как: 04152543926
Решение
Я предпочитаю делать привязку данных в моем кодоне:
<asp:Label ID="lbl005108002" runat="server" Text="" OnDataBinding="lbl005108002_DataBinding"></asp:Label>
В CodeBehind:
protected void lbl005108002_DataBinding(object sender, System.EventArgs e)
{
Label lbl = (Label)(sender);
lbl.Text = String.Format("{0:(###) ###-####}", (int)(Eval("phone number")));
}
Я думаю, что ключ в том, что бросил int
Так что Fixter знает, как иметь дело с ценностью, которую вы его отправляете. Я предпочитаю делать это в Codebehind, потому что иногда пытаюсь забрать все, что встроенный делает вещи менее явными.
Другие советы
Какой тип - это значение? Это, кажется, формат нормально для меня:
int phone_num = 1231231234;
string f = String.Format("{0:(###) ###-####}", phone_num);
Альтернативный способ:
Dim i как integer = 5551234567 dim s as string = i.tostring ("(###) ### - ####")
TOSTRING - это быстрый способ, которым я использую. Что я сделал, это в окне электронной коммунты, я сделал это:
? 5551234567.ToString("(###) ###-####")
Результатом был:
"(555) 123-4567"
Поэтому я уверен, что это работает. Удачи!