Bạn có thể sử dụng chuỗi trong schema của bạn thay vì dấu chấm động cho mục đích hiển thị, và thực hiện các định dạng bằng tay, một cái gì đó như thế này:
EDIT: Nếu không có LINQ, bạn có thể làm điều tương tự bằng cách thay đổi hàng trong schema:
// 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#, giải pháp LINQ-Based:
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()
Câu hỏi được đưa ra một cách sai lầm ASP.NET 4.0. Tôi đang trên 2,0 (câu hỏi được cập nhật), vì vậy tôi không thể sử dụng LINQ. :-( –
Xem mã được cập nhật. – mellamokb