Форматирование, применяемое к границам в GridView, не работает
-
26-09-2019 - |
Вопрос
У меня есть следующие столбцы в 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