日期:2014-05-18  浏览次数:20456 次

gridview的数字列格式化之后如何重新转换为数值
protected decimal GetTotalPrice()
  {
  decimal price = 0;
  foreach (GridViewRow row in GridView1.Rows)
  {
  price +=decimal.Parse(row.Cells[3].Text}
  return price;
   
  }
  这段代码用于遍历一个gridview 的" 小计"列,此列已格式化为"{0:c2}"的货币格式, 现在我要计算它的总价。但是
row.cells[3].text 的结果是格式化后的字符串,无法转化为数值decimal型,,如何才能将格式化过的字符转换为数值?

------解决方案--------------------
在绑定事件里面进行相加,这个时候是没格式化的

decimal price = 0;
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
price += decimal.Parse(DataBinder.Eval(e.Row.DataItem, "字段名称").ToString());
}
}
------解决方案--------------------
C# code

Decimal.Parse(row.Cells[3].Text, NumberStyles.Currency)