Ho un Gridview nella mia pagina .aspx. Sto mostrando i dati dinamici in questo grid.how mostrerò il float o il doppio numero in 2 posizioni decimali in gridview.Mostrando il numero in 2 cifre decimali in gridview
risposta
La colonna associata deve avere una colonna DataFormatString. Si potrebbe fare qualcosa di simile:
DataFormatString="{0:0.00}"
Numeric Custom Format Strings
UPDATE Nel caso di AutoGenerateColumns="true"
... avrei dovuto conoscere più specifiche su quello che stai vincolante, ma qui ci sono alcune strade da esplorare:
- non sono sicuro se sarà GridView rispettare la DataFormatAttribute in dati annotazioni. Se si sta vincolando un oggetto e GridView rispetta l'attributo , potrebbe essere una route da percorrere.
- Collegare l'evento RowDataBound e ispezionare ciascuna colonna per i potenziali valori decimali e formattare in questo modo.
Ci sono due semplici modi per formattare le cose in un GridView. Il primo è dato in una risposta precedente - usa DataFormatString. Il secondo, che suona come si applica alla tua situazione, dove stai caricando dinamicamente la griglia, è quello di modificare i dati che entrano nella griglia.
Quindi, anziché restituire un numero e provare a formattarlo, restituire un numero formattato e lasciare che GridView lo visualizzi.
è possibile scrivere BoundField in GridView:
<asp:BoundField DataField="amount" DataFormatString="{0:n}" />
si può anche scrivere TemplateField in GridView
<asp:TemplateField>
<ItemTemplate>
<%#Eval("amount","{0:n}")%>
</ItemTemplate>
</asp:TemplateField>
Questo funziona su una colonna modello, dire che se si vuole un decimale fuori a due posti per un rapporto (come 1: 3)
<%# Eval("somedatacolumn", "1:{0:.##}").ToString() %>
Se si utilizza DataFormatString
e non vede m di fare il trucco, aggiungere HtmlEncode = "false"
, ad esempio:
<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
Si può fare DataFormatString="{0:n2}"
nel vostro BoundField
Ciao, grazie per im reply.but assegnando valore alla GridView dinamicamente, e AutoGenerateColumns = "True" . –
ok, collego DataTable al gridview.In realtà sto associando diversi DataTable allo stesso gridview in base alle Condizioni selezionate dall'utente, ciò significa supponiamo di avere due opzioni nella casella combinata 1.Persons e 2.Products quindi se l'utente seleziona il Persone quindi sto recuperando persone Datatable e associarlo a GridView e se l'utente seleziona i prodotti, allora sto recuperando i prodotti datatable e legandolo a GridView. –
Sembra che potrebbero essere più problemi di quanti ne valga la pena. Puoi avere due GridView, uno configurato come vuoi per Persone e l'altro per Prodotti, e nasconderne uno e mostrare l'altro se necessario? In caso contrario, è comunque possibile ispezionare ogni colonna su RowDataBound e formattare il valore come desiderato. – HackedByChinese