gpt4 book ai didi

asp.net - AutoGenerateColumns true 时 GridView 中的数据格式化

转载 作者:行者123 更新时间:2023-12-02 14:10:08 27 4
gpt4 key购买 nike

我在 ASP.NET 2.0 中有一个 GridView,其中 AutoGenerateColumns 设置为 true。它将在运行时绑定(bind)到具有多种可能模式之一的 DataSet,而且我不想为每种可能的模式设置网格和列。

网格中的某些列有时是浮点值。默认数字格式似乎将 0.345 变为 0.345000。有没有办法更改默认数字格式,使其修剪为设定的小数位数?

最佳答案

您可以在架构中使用字符串而不是浮点来进行显示,并手动执行格式化,如下所示:

编辑:如果没有 LINQ,您可以通过修改架构中的行来完成相同的操作:

// 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 的解决方案:

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()

关于asp.net - AutoGenerateColumns true 时 GridView 中的数据格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8509924/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com