我正在尝试将网格的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文件本身中完成,了解小数位数是从数据库动态设置的。
你对我出错的地方的想法?
答案 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();