不使用

时间:2015-12-23 10:18:46

标签: c# asp.net gridview datagridview grid

我正在尝试将网格的boundfield列的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(表示小数点后2位小数)。

P.S。我知道这可以通过将DataFormatString属性设置为"{0:N2}"在aspx文件本身中完成,了解小数位数是从数据库动态设置的。

你对我出错的地方的想法?

1 个答案:

答案 0 :(得分:1)

假设您的数据位于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();