Pregunta

Tengo las siguientes columnas en un gridview, uno es una fecha y la otra es una cantidad de dinero. He aplicado el formato y establece la propiedad HtmlEncode a falso, sin embargo los valores todavía surgen sin formato:

<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}" />

Esta es la forma en que aparecen estos valores en el gridview:

El valor "total" surge como: 190.0000 El valor Fecha de Venta surge como: 9/2/2010 8:59:00 AM

¿Alguna sugerencia?

¿Fue útil?

Solución

he encontrado cuál era el problema. Yo no era capaz de dar formato a los BoundFields del gridview debido a su tipo de datos se establece en una cadena. El conjunto de datos que estoy usando para poblar el gridview está viniendo de un servicio web, todos los campos del conjunto de datos se están volviendo como cadenas por eso es que la propiedad DataFormatString en el gridview no estaba funcionando.

La solución : Terminé cambiando el tipo de datos de estos campos después de que consiguiera el conjunto de datos del servicio web y antes de usarlo como el origen de datos de la vista de cuadrícula, una vez que hice esto, la propiedad DataFormatString en el gridview funcionaba como esperaba:

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top