Można użyć ciągi w schemacie zamiast zmiennoprzecinkowych do celów wystawowych i wykonać formatowanie ręcznie, coś takiego:
EDIT: Bez LINQ, można zrobić to samo, modyfikując wiersze schematu:
// load source data
DataSet myData = GetDataSet();
// create column for formatted data.
myData.Tables["MyTable"].Columns.Add("AmountFormatted", typeof(string));
// apply formatting
foreach (DataRow dr in myData.Tables["MyTable"].Rows)
dr["AmountFormatted"] = string.Format("{0:0.###}", dr["Amount"]);
// remove source column and replace with formatted column
myData.Tables["MyTable"].Columns.Remove("Amount");
myData.Tables["MyTable"].Columns["AmountFormatted"].ColumnName = "Amount";
C#, LINQ-Based rozwiązanie:
var theData = GetDataSchema1();
var dataSource = theData.Tables["MyTable"].Select().Select(dr =>
new { /* select only columns you want displayed, and apply formatting */
MyColumn1 = dr["MyColumn1"],
MyColumn2 = dr["MyColumn2"],
MyColumn3 = String.format("#.###", dr["MyColumn3"]),
MyColumn4 = dr["MyColumn4"],
MyColumn5 = dr["MyColumn5"]
}
);
MyGridView1.DataSource = dataSource;
MyGridView1.DataBind()
Pytanie błędnie określiło ASP.NET 4.0. Jestem na 2.0 (pytanie zaktualizowane), więc nie mogę używać LINQ. :-( –
Zobacz zaktualizowany kod. – mellamokb