Есть ли способ форматировать значение столбца столбца gridview как валюту. Я установил DataFormatString из BoundField в {0: c}, но это, похоже, не влияет на нижний колонтитул. Должен ли я делать это в событии RowDataBound?Строка данных нижнего колонтитула Gridview
0
A
ответ
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");
}
}
0
У вас установлен HtmlEncode = "False" на нижнем колонтитуле?
Редактировать: это была известная проблема на некоторое время.
0
Это ляп. (sp?)
Но иногда перед лицом известных проблем у вас есть 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;
}
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);
}