2010-10-13 75 views

Respuesta

32

La columna enlazada debe tener una columna DataFormatString. Se podría hacer algo como:

DataFormatString="{0:0.00}" Numeric Custom Format Strings

ACTUALIZACIÓN En el caso de AutoGenerateColumns="true" ... Tendría que conocer más detalles acerca de lo que estás vinculante, pero aquí hay algunas vías para explorar:

  1. no estoy seguro de si GridView se respetar la DataFormatAttribute en datos de anotaciones. Si está vinculando un objeto, y GridView respeta ese atributo, que podría ser una ruta para ir.
  2. alambre caso RowDataBound y inspeccionar cada columna para potenciales valores decimales, y el formato de esa manera.
+0

hola, gracias por im reply.but valor a asignar dinámicamente GridView, y AutoGenerateColumns = "true" . –

+0

bien, estoy DataTable unión a la gridview.Actually estoy de unión diferentes DataTable a la misma gridview acuerdo con las condiciones de que el usuario ha seleccionado, significa Supongamos que tengo dos opciones en cuadro combinado 1.Personas y 2.Productos por lo que si el usuario seleccione el Las personas, a continuación, voy a buscar la tabla de datos de Personas y la ato a GridView y, si el usuario selecciona Productos, entonces estoy obteniendo la tabla de datos de Productos y vinculándola a GridView. –

+1

Parece que eso podría ser más problemas de lo que vale. ¿Puede tener dos GridViews, una configurada de la manera que desea para Personas y la otra para Productos, y solo esconde una y muestra la otra según sea necesario? De lo contrario, aún puede inspeccionar cada columna en RowDataBound y formatear el valor como desee. – HackedByChinese

0

Hay dos formas sencillas de formatear cosas en un GridView. El primero se da en una respuesta anterior: use DataFormatString. El segundo, que parece que se aplica a su situación, donde está cargando dinámicamente la cuadrícula, es cambiar los datos que van a la red.

Así, en lugar de devolver un número y tratando de darle formato, devolver un número formateado y dejar que el GridView que aparezca.

8

puede escribir BoundField en GridView:

<asp:BoundField DataField="amount" DataFormatString="{0:n}" /> 

también se puede escribir TemplateField en GridView

<asp:TemplateField> 
    <ItemTemplate> 
    <%#Eval("amount","{0:n}")%> 
    </ItemTemplate> 
</asp:TemplateField> 
+1

Esto debe aceptarse como respuesta ... – Waqas

+0

m intentando algo como esto - '> y muestra todos los valores como 2. ¿Dónde estoy equivocado? – Silver

2

Esto funciona en una columna de plantilla, que si quieres un decimal a dos lugares de una relación (como 1: 3)

<%# Eval("somedatacolumn", "1:{0:.##}").ToString() %> 
1

Si utiliza DataFormatString y que no se ve m a estar haciendo el truco, añadir HtmlEncode = "false", por ejemplo:

<asp:BoundField DataField="DateScheduled" HeaderText="Date Created" DataFormatString="{0:D}" HtmlEncode="false"/> // date format 
<asp:BoundField DataField="Amount" HeaderText="Pay This Amount" DataFormatString="{0:F}" HtmlEncode="false"/> // number format 
3

Usted puede hacer DataFormatString="{0:n2}" en su BoundField

Cuestiones relacionadas