Форматирование, примененное к связанным полям в gridview, не работает - PullRequest
2 голосов
/ 02 сентября 2010

У меня есть следующие столбцы в сетке: один - дата, а другой - сумма в долларах.Я применил форматирование и установил для свойства HtmlEncode значение false, однако значения по-прежнему отображаются в неотформатированном виде:

<asp:BoundField DataField="Total" HeaderText="Total" ReadOnly="true" HtmlEncode="False" DataFormatString="{0:C}" />
<asp:BoundField DataField="Sale_Date" HeaderText="Sale Date" ReadOnly="true" HtmlEncode="False" DataFormatString = "{0:d}" />

Вот как эти значения отображаются в виде сетки:

Значение «Итого»выглядит как: 190.0000 Значение Дата продажи выглядит так: 9/2/2010 8:59:00 AM

Есть предложения?

1 Ответ

6 голосов
/ 10 сентября 2010

Я нашел, в чем проблема.Я не смог отформатировать границы полей из таблицы, потому что его тип данных был установлен на строку.Набор данных, который я использую для заполнения вида сетки, поступает из веб-службы, все поля в наборе данных возвращаются как строки, поэтому свойство DataFormatString в виде сетки не работает.

Исправление : я закончил тем, что изменил тип данных этих полей после того, как получил набор данных из веб-службы и перед тем, как использовать его в качестве источника данных представления сетки, как только я это сделал, свойство DataFormatString вgridview работал как ожидалось:

ds = _ws.GetOrderList(brokerId, type, pageSize, pageNum, sort, searchBy, searchFor);
ds2 = ds.Clone();

ds2.Tables[0].Columns["Price"].DataType = System.Type.GetType("System.Double");
ds2.Tables[0].Columns["Total"].DataType = System.Type.GetType("System.Double");
ds2.Tables[0].Columns["Sale_Date"].DataType = System.Type.GetType("System.DateTime");

foreach (DataRow row in ds.Tables[0].Rows)
  {
     ds2.Tables[0].ImportRow(row);
  }
return ds2
...