有没有办法将gridview列页脚值格式化为货币。我将BoundField的DataFormatString设置为{0:c},但这似乎不会影响页脚。我是否必须在RowDataBound事件中执行此操作?
答案 0 :(得分:0)
您是否在页脚上设置了HtmlEncode =“False”?
编辑:这已成为一个已知问题。
答案 1 :(得分:0)
我最终以类似的方式做到了......
protected void gridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
double dVal = 0.0;
if (e.Row.RowType == DataControlRowType.DataRow)
{
dVal += Convert.ToDouble(e.Row.Cells[1].Text);
}
if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[1].Text = dVal.ToString("c");
}
}
答案 2 :(得分:0)
这是一个kludge。 (藻?)
但有时面对已知问题,你必须要克服。 (藻?)
private static string FormatByGridView(object value, string DataFormatString)
{
GridView grid = new GridView();
DataTable table = new DataTable();
table.Columns.Add("value", value.GetType());
var row = table.NewRow();
row["value"] = value;
table.Rows.Add(row);
grid.Columns.Add(new BoundField() { DataField = "value", DataFormatString = DataFormatString });
grid.DataSource = table;
grid.DataBind();
return grid.Rows[0].Cells[0].Text;
}
答案 3 :(得分:0)
这对我有用:
if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[2].Text = string.Format("{0:#,###,###.00}", total2013);
e.Row.Cells[3].Text = string.Format("{0:#,###,###.00}", total2014);
}