如何格式化 GridView 中 Eval 输出的值?

ASP.NET 中用 GridView 时,常常用到自定义模板(因为默认的实在不能满足我们的需求),而自定义时,往往少不了 Eval 来输出字段值。

但 Eval 的内容并不一定很令我们满意,我们可能要先将其格式化一下再输出。

< asp:TemplateField HeaderText = " 价格 " >
    
< ItemStyle CssClass = " price "   />
    
< ItemTemplate ><% # String.Format( " {0,5:0.00} " , Eval( " Price " ))  %></ ItemTemplate >
</ asp:TemplateField >

 

如上,我们将 Price 字段的值经 String.Format 格式化后输出。顺便提一下 {0,5:0.00},它是如下意义:

  • Price 保留两位小数输出(四舍五入),且小数不足两位时补零。
  • Price 算上小数点,算上小数(两位)不足五位时,前面加空白,补足五位。

再看下日期的

< ItemTemplate ><% # Convert.ToDateTime(Eval( " ExpireDate " )).ToString( " yyyy-MM-dd " %></ ItemTemplate >

 

再看下自定义方法的

前面都是使用系统内部的方法,自定义方法,需要先定义一个至少是 protected 的方法,比如:

protected   string  foo( string  str)
{
    
return  str  +   " :) " ;
}

然后应用时,需要注意转换 Eval 字段的类型为 string。比如:

< ItemTemplate ><% # foo(Eval( " realName " ).ToString())  %></ ItemTemplate >

 

你可能感兴趣的:(GridView)