没有从代码隐藏中设置网格的Dataformatstring属性

本文关键字:网格 Dataformatstring 属性 设置 代码 隐藏 | 更新日期: 2023-09-27 18:27:53

我正在尝试将网格的边界字段列的Dataformatstring设置为某种格式。但它并没有得到应用。

 GridView grid = (GridView)sender;
 BoundField a= (BoundField)grid.Columns[2];
 BoundField b= (BoundField)grid.Columns[3];
 BoundField c= (BoundField)grid.Columns[4];
 a.DataFormatString = "{0:N" + GridRoundoffDecimal + "}";
 b.DataFormatString = "{0:N" + GridRoundoffDecimal + "}";
 c.DataFormatString = "{0:N" + GridRoundoffDecimal + "}";

但是轴网列的值没有变化。这里GridRoundOffDecimal是数据库中的一个值,目前我已将其设置为2(表示小数点后的两位小数)。

附言:我知道这可以在aspx文件中通过将DataFormatString属性设置为"{0:N2}"来完成,也知道小数位数是从数据库中动态设置的。

你认为我哪里错了?

没有从代码隐藏中设置网格的Dataformatstring属性

假设您的数据在DataTable上,我认为如果您在DataBind()函数之前执行它会更容易。像这样:

// Change decimal places and pass the DataTable to the GridView
for (int i = 0; i < dt.Rows.Count; i++)
{
    double newValue = Convert.ToDouble(dt.Rows[i]["ColumnNameToChange"]);
    dt.Rows[i]["ColumnNameToChange"] = String.Format("{0:N" + GridRoundoffDecimal.ToString() + "}", newValue);
}
GridView1.DataSource = dt;
GridView1.DataBind();