Форматирование, применяемое к границам в GridView, не работает

StackOverflow https://stackoverflow.com/questions/3629837

Вопрос

У меня есть следующие столбцы в GridView, одна вета, а другая - сумма доллара. Я применил форматирование и установив свойство 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}" />

Вот как эти значения появляются в GridView:

Значение «Total» подходит как: 190.0000Значение даты продажи подходит как: 9/2/2010 8:59:00 утра

Какие-либо предложения?

Это было полезно?

Решение

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

Исправление: Я закончил изменение типа данных этих полей после того, как я получил данные, установленные из веб-сервиса, а перед его использованием в качестве DataSource View сетки, как только я сделал это, свойство 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top