Вопрос по gridview, asp.net – ASP.NET GridView Column - форматирование номера телефона

1

Я добавляю столбец к моему gridview в code-behind следующим образом:

field = new BoundField();
field.HeaderText = "Phone Number";
field.DataField = "PhoneNumber";
field.HtmlEncode = false;
field.DataFormatString = "{0:###-###-####}";
gridView.Columns.Add(field);

Однако DataFormatString не работает, поскольку поле PhoneNumber является строкой, а не числом. В любом случае нужно позаботиться об этом в DataFormatString или мне нужно преобразовать тип данных, прежде чем я доберусь до этой точки?

Ваш Ответ

2   ответа
0

Первый выбор - сделать это на SQL

  select cast(phone as int) as Phone,...

Если нет, сделайте этот столбец шаблонным, и тогда у вас будет что-то вроде:

<asp:TextBox ID="TextBox1" runat="server" 
Text='<%#(DataBinder.Eval(Container.DataItem, "Phone")== System.DBNull.Value)?
"":
String.Format("{0:(###) ###-####}", 
Convert.ToInt64(DataBinder.Eval(Container.DataItem, "Phone"))))
%>'>
</asp:TextBox>
Я добавляю столбец в коде позади. Могу ли я добавить шаблонный столбец в коде позади? Mike Cole
Мы говорим о добавлении шаблонного столбца в разметку .aspx. Увидетьauthors.aspalliance.com/aspxtreme/webforms/controls/…
1

Это сложно. Я, вероятно, отформатировал бы это вручную. в событии RowDataBound сетки.

Я не показывал весь свой код - GridView также создается и загружается из-за кода. У него все еще есть событие RowDataBound? Mike Cole

Похожие вопросы